diff --git a/common/changes/@autorest/openapi-to-typespec/someUptake_2025-08-13-08-52.json b/common/changes/@autorest/openapi-to-typespec/someUptake_2025-08-13-08-52.json new file mode 100644 index 0000000000..67cbd80842 --- /dev/null +++ b/common/changes/@autorest/openapi-to-typespec/someUptake_2025-08-13-08-52.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@autorest/openapi-to-typespec", + "comment": "Support optional location and lowe case etag", + "type": "patch" + } + ], + "packageName": "@autorest/openapi-to-typespec" +} \ No newline at end of file diff --git a/packages/extensions/openapi-to-typespec/src/interfaces.ts b/packages/extensions/openapi-to-typespec/src/interfaces.ts index 25c73e1f8a..77e1bd3263 100644 --- a/packages/extensions/openapi-to-typespec/src/interfaces.ts +++ b/packages/extensions/openapi-to-typespec/src/interfaces.ts @@ -228,7 +228,11 @@ export interface Models { armResources: TspArmResource[]; } -export type ArmResourceKind = "TrackedResource" | "ProxyResource" | "ExtensionResource"; +export type ArmResourceKind = + | "TrackedResource" + | "ProxyResource" + | "ExtensionResource" + | "Legacy.TrackedResourceWithOptionalLocation"; export type ArmResourceOperationKind = "TrackedResourceOperations" | "ProxyResourceOperations"; const FIRST_LEVEL_RESOURCE = [ diff --git a/packages/extensions/openapi-to-typespec/src/resource/parse-metadata.ts b/packages/extensions/openapi-to-typespec/src/resource/parse-metadata.ts index b393332616..12f450a859 100644 --- a/packages/extensions/openapi-to-typespec/src/resource/parse-metadata.ts +++ b/packages/extensions/openapi-to-typespec/src/resource/parse-metadata.ts @@ -116,8 +116,7 @@ export function parseMetadata(codeModel: CodeModel, configuration: Record 0 && parents[0] === "TenantResource"; - const isSubscriptionResource = parents.length > 0 && parents[0] === "SubscriptionResource"; const isManagementGroupResource = parents.length > 0 && parents[0] === "ManagementGroupResource"; const operationsFromResourceGroupExtension = []; @@ -195,6 +192,7 @@ function buildResource( } } + const [isStandardTrackedResource, isOptionalLocation] = isTrackedResource(resourceSchema!); return { Name: lastWordToSingular(resourceSchemaName), GetOperation: getOperation, @@ -213,9 +211,8 @@ function buildResource( ResourceType: getResourceType(set.RequestPath), ResourceKey: getResourceKey(set.RequestPath), ResourceKeySegment: getResourceKeySegment(set.RequestPath), - IsTrackedResource: isTrackedResource(resourceSchema!), - IsTenantResource: isTenantResource, - IsSubscriptionResource: isSubscriptionResource, + IsTrackedResource: isStandardTrackedResource, + IsTrackedResourceWithOptionalLocation: isStandardTrackedResource && isOptionalLocation, IsManagementGroupResource: isManagementGroupResource, ScopeType: getExtensionResourceType(set.RequestPath), IsSingletonResource: isSingleton(set), diff --git a/packages/extensions/openapi-to-typespec/src/resource/resource-equivalent.ts b/packages/extensions/openapi-to-typespec/src/resource/resource-equivalent.ts index 61410ab62a..df15c7d6a6 100644 --- a/packages/extensions/openapi-to-typespec/src/resource/resource-equivalent.ts +++ b/packages/extensions/openapi-to-typespec/src/resource/resource-equivalent.ts @@ -28,21 +28,23 @@ export function isResource(schema: ObjectSchema): boolean { return idPropertyFound && typePropertyFound && namePropertyFound; } -export function isTrackedResource(schema: ObjectSchema): boolean { - if (!isResource(schema)) return false; +export function isTrackedResource(schema: ObjectSchema): [isTrackedResource: boolean, isOptionalLocation: boolean] { + if (!isResource(schema)) return [false, false]; let isLocationFound = false; + let isOptionalLocation = false; let isTagsFound = false; for (const property of getAllProperties(schema)) { if (property.flattenedNames) continue; if (property.serializedName === "location" && isStringSchema(property.schema)) { isLocationFound = true; + isOptionalLocation = property.required !== true; } else if (property.serializedName === "tags" && isDictionarySchema(property.schema)) { isTagsFound = true; } } - return isLocationFound && isTagsFound; + return [isLocationFound && isTagsFound, isLocationFound && isTagsFound && isOptionalLocation]; } export function getPagingItemType(operation: Operation, markPaging: boolean = false): string | undefined { diff --git a/packages/extensions/openapi-to-typespec/src/transforms/transform-arm-resources.ts b/packages/extensions/openapi-to-typespec/src/transforms/transform-arm-resources.ts index 9b933a1f17..6cd45b9f34 100644 --- a/packages/extensions/openapi-to-typespec/src/transforms/transform-arm-resources.ts +++ b/packages/extensions/openapi-to-typespec/src/transforms/transform-arm-resources.ts @@ -955,19 +955,13 @@ function getOtherProperties( ): (TypespecObjectProperty | TypespecSpreadStatement)[] { const knownProperties = ["properties", "name", "id", "type", "systemData"]; const resourceKind = getResourceKind(schema); - if (resourceKind === "TrackedResource") { + if (resourceKind === "TrackedResource" || resourceKind === "Legacy.TrackedResourceWithOptionalLocation") { knownProperties.push(...["location", "tags"]); } const otherProperties: (TypespecObjectProperty | TypespecSpreadStatement)[] = []; for (const property of schema.properties ?? []) { if (!knownProperties.includes(property.serializedName)) { const envolopeProperty = getEnvelopeProperty(property); - if (envolopeProperty) { - const envelopeAugmentedDecorator = getEnvelopeAugmentedDecorator(schema, property); - if (envelopeAugmentedDecorator) { - augmentDecorators.push(envelopeAugmentedDecorator); - } - } otherProperties.push( envolopeProperty ?? { ...transformObjectProperty(property, getSession().model), @@ -1217,9 +1211,9 @@ function buildOperationParameters( // By default we don't need any base parameters. const parameterTemplate: string[] = []; - if (resource.IsTenantResource) { + if (resource.ScopeType === "Tenant") { parameterTemplate.push(getFullyQualifiedName("TenantBaseParameters")); - } else if (resource.IsSubscriptionResource) { + } else if (resource.ScopeType === "Subscription") { parameterTemplate.push(getFullyQualifiedName("SubscriptionBaseParameters")); } @@ -1266,6 +1260,10 @@ function getResourceKind(schema: ArmResourceSchema): ArmResourceKind { return "ExtensionResource"; } + if (schema.resourceMetadata[0].IsTrackedResourceWithOptionalLocation) { + return "Legacy.TrackedResourceWithOptionalLocation"; + } + if (schema.resourceMetadata[0].IsTrackedResource) { return "TrackedResource"; } @@ -1359,11 +1357,11 @@ function buildResourceDecorators(schema: ArmResourceSchema): TypespecDecorator[] }); } - if (schema.resourceMetadata[0].IsTenantResource) { + if (schema.resourceMetadata[0].ScopeType === "Tenant") { resourceModelDecorators.push({ name: "tenantResource", }); - } else if (schema.resourceMetadata[0].IsSubscriptionResource) { + } else if (schema.resourceMetadata[0].ScopeType === "Subscription") { resourceModelDecorators.push({ name: "subscriptionResource", }); @@ -1397,10 +1395,8 @@ function getSingletonName(schema: ArmResourceSchema): string { function getLocationParent(schema: ArmResourceSchema): string | undefined { if (schema.resourceMetadata[0].GetOperation!.Path.includes("/locations/")) { - if (schema.resourceMetadata[0].IsTenantResource) { + if (schema.resourceMetadata[0].ScopeType === "Tenant") { return "TenantLocationResource"; - } else if (schema.resourceMetadata[0].IsSubscriptionResource) { - return "SubscriptionLocationResource"; } else if (schema.resourceMetadata[0].Parents?.[0] === "ResourceGroupResource") { return "ResourceGroupLocationResource"; } diff --git a/packages/extensions/openapi-to-typespec/src/utils/envelope-property.ts b/packages/extensions/openapi-to-typespec/src/utils/envelope-property.ts index d252b88a05..56c725c14a 100644 --- a/packages/extensions/openapi-to-typespec/src/utils/envelope-property.ts +++ b/packages/extensions/openapi-to-typespec/src/utils/envelope-property.ts @@ -66,13 +66,20 @@ const knownEnvelopes: Record = { schema: { name: "string", type: "primitive", schema: (schema) => schema.type === "string" }, envelopeName: "Azure.ResourceManager.EntityTagProperty", }, + etag: { + serializedName: "etag", + required: false, + isReadOnly: true, + schema: { name: "string", type: "primitive", schema: (schema) => schema.type === "string" }, + envelopeName: "Azure.ResourceManager.Legacy.EntityTagProperty", + }, }; export function getEnvelopeProperty(property: Property): TypespecSpreadStatement | undefined { for (const key of Object.keys(knownEnvelopes)) { const envelope = knownEnvelopes[key]; if ( - property.serializedName.toLowerCase() === envelope.serializedName.toLowerCase() && + property.serializedName === envelope.serializedName && (property.required ?? false) === envelope.required && (property.readOnly ?? false) === envelope.isReadOnly && isEquivalent(property.schema, envelope.schema) diff --git a/packages/extensions/openapi-to-typespec/src/utils/resource-discovery.ts b/packages/extensions/openapi-to-typespec/src/utils/resource-discovery.ts index 9e800e25a5..bb00a7d294 100644 --- a/packages/extensions/openapi-to-typespec/src/utils/resource-discovery.ts +++ b/packages/extensions/openapi-to-typespec/src/utils/resource-discovery.ts @@ -43,8 +43,7 @@ export interface ArmResource { ResourceKey: string; ResourceKeySegment: string; IsTrackedResource: boolean; - IsTenantResource: boolean; - IsSubscriptionResource: boolean; + IsTrackedResourceWithOptionalLocation: boolean; IsManagementGroupResource: boolean; ScopeType: ScopeType; IsSingletonResource: boolean; diff --git a/packages/extensions/openapi-to-typespec/test/arm-agrifood/resources.json b/packages/extensions/openapi-to-typespec/test/arm-agrifood/resources.json index 21e9241017..26a597a8d1 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-agrifood/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-agrifood/resources.json @@ -67,8 +67,7 @@ "ResourceKey": "dataConnectorName", "ResourceKeySegment": "dataConnectors", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -114,8 +113,7 @@ "ResourceKey": "dataManagerForAgricultureExtensionId", "ResourceKeySegment": "farmBeatsExtensionDefinitions", "IsTrackedResource": false, - "IsTenantResource": true, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Tenant", "IsSingletonResource": false @@ -202,8 +200,7 @@ "ResourceKey": "dataManagerForAgricultureResourceName", "ResourceKeySegment": "farmBeats", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -276,8 +273,7 @@ "ResourceKey": "extensionId", "ResourceKeySegment": "extensions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -350,8 +346,7 @@ "ResourceKey": "privateEndpointConnectionName", "ResourceKeySegment": "privateEndpointConnections", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -397,8 +392,7 @@ "ResourceKey": "subResourceName", "ResourceKeySegment": "privateLinkResources", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -471,8 +465,7 @@ "ResourceKey": "solutionId", "ResourceKeySegment": "solutions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -518,8 +511,7 @@ "ResourceKey": "dataManagerForAgricultureSolutionId", "ResourceKeySegment": "farmBeatsSolutionDefinitions", "IsTrackedResource": false, - "IsTenantResource": true, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Tenant", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-alertsmanagement/resources.json b/packages/extensions/openapi-to-typespec/test/arm-alertsmanagement/resources.json index 0722ef9dff..131032ce90 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-alertsmanagement/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-alertsmanagement/resources.json @@ -81,8 +81,7 @@ "ResourceKey": "alertProcessingRuleName", "ResourceKeySegment": "actionRules", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -147,8 +146,7 @@ "ResourceKey": "alertId", "ResourceKeySegment": "alerts", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": true, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -213,8 +211,7 @@ "ResourceKey": "smartGroupId", "ResourceKeySegment": "smartGroups", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": true, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-analysisservices/resources.json b/packages/extensions/openapi-to-typespec/test/arm-analysisservices/resources.json index 29405baf88..5d65c78ce6 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-analysisservices/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-analysisservices/resources.json @@ -131,8 +131,7 @@ "ResourceKey": "serverName", "ResourceKeySegment": "servers", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-apimanagement/resources.json b/packages/extensions/openapi-to-typespec/test/arm-apimanagement/resources.json index b955218b28..f2ab9a7b02 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-apimanagement/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-apimanagement/resources.json @@ -116,8 +116,7 @@ "ResourceKey": "apiId", "ResourceKeySegment": "apis", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -199,8 +198,7 @@ "ResourceKey": "releaseId", "ResourceKeySegment": "releases", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -282,8 +280,7 @@ "ResourceKey": "operationId", "ResourceKeySegment": "operations", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -365,8 +362,7 @@ "ResourceKey": "policyId", "ResourceKeySegment": "policies", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -446,8 +442,7 @@ "ResourceKey": "policyId", "ResourceKeySegment": "policies", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -527,8 +522,7 @@ "ResourceKey": "policyId", "ResourceKeySegment": "policies", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -608,8 +602,7 @@ "ResourceKey": "policyId", "ResourceKeySegment": "policies", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -691,8 +684,7 @@ "ResourceKey": "tagId", "ResourceKeySegment": "tags", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -772,8 +764,7 @@ "ResourceKey": "tagId", "ResourceKeySegment": "tags", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -853,8 +844,7 @@ "ResourceKey": "tagId", "ResourceKeySegment": "tags", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -934,8 +924,7 @@ "ResourceKey": "tagId", "ResourceKeySegment": "tags", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1017,8 +1006,7 @@ "ResourceKey": "schemaId", "ResourceKeySegment": "schemas", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1100,8 +1088,7 @@ "ResourceKey": "diagnosticId", "ResourceKeySegment": "diagnostics", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1181,8 +1168,7 @@ "ResourceKey": "diagnosticId", "ResourceKeySegment": "diagnostics", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1264,8 +1250,7 @@ "ResourceKey": "issueId", "ResourceKeySegment": "issues", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1309,8 +1294,7 @@ "ResourceKey": "issueId", "ResourceKeySegment": "issues", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1392,8 +1376,7 @@ "ResourceKey": "commentId", "ResourceKeySegment": "comments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1475,8 +1458,7 @@ "ResourceKey": "attachmentId", "ResourceKeySegment": "attachments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1558,8 +1540,7 @@ "ResourceKey": "tagDescriptionId", "ResourceKeySegment": "tagDescriptions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1641,8 +1622,7 @@ "ResourceKey": "versionSetId", "ResourceKeySegment": "apiVersionSets", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1734,8 +1714,7 @@ "ResourceKey": "authsid", "ResourceKeySegment": "authorizationServers", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1827,8 +1806,7 @@ "ResourceKey": "backendId", "ResourceKeySegment": "backends", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1910,8 +1888,7 @@ "ResourceKey": "cacheId", "ResourceKeySegment": "caches", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2003,8 +1980,7 @@ "ResourceKey": "certificateId", "ResourceKeySegment": "certificates", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2077,8 +2053,7 @@ "ResourceKey": "contentTypeId", "ResourceKeySegment": "contentTypes", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2160,8 +2135,7 @@ "ResourceKey": "contentItemId", "ResourceKeySegment": "contentItems", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2202,8 +2176,7 @@ "ResourceKey": "serviceName", "ResourceKeySegment": "deletedservices", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": true, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -2610,8 +2583,7 @@ "ResourceKey": "serviceName", "ResourceKeySegment": "service", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2693,8 +2665,7 @@ "ResourceKey": "templateName", "ResourceKeySegment": "templates", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2844,8 +2815,7 @@ "ResourceKey": "gatewayId", "ResourceKeySegment": "gateways", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2927,8 +2897,7 @@ "ResourceKey": "hcId", "ResourceKeySegment": "hostnameConfigurations", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3010,8 +2979,7 @@ "ResourceKey": "certificateId", "ResourceKeySegment": "certificateAuthorities", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3134,8 +3102,7 @@ "ResourceKey": "groupId", "ResourceKeySegment": "groups", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3227,8 +3194,7 @@ "ResourceKey": "identityProviderName", "ResourceKeySegment": "identityProviders", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3310,8 +3276,7 @@ "ResourceKey": "loggerId", "ResourceKeySegment": "loggers", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3412,8 +3377,7 @@ "ResourceKey": "namedValueId", "ResourceKeySegment": "namedValues", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3558,8 +3522,7 @@ "ResourceKey": "notificationName", "ResourceKeySegment": "notifications", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3651,8 +3614,7 @@ "ResourceKey": "opid", "ResourceKeySegment": "openidConnectProviders", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3725,8 +3687,7 @@ "ResourceKey": "portalRevisionId", "ResourceKeySegment": "portalRevisions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3785,8 +3746,7 @@ "ResourceKey": "signin", "ResourceKeySegment": "portalsettings", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -3845,8 +3805,7 @@ "ResourceKey": "signup", "ResourceKeySegment": "portalsettings", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -3915,8 +3874,7 @@ "ResourceKey": "delegation", "ResourceKeySegment": "portalsettings", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -3989,8 +3947,7 @@ "ResourceKey": "privateEndpointConnectionName", "ResourceKeySegment": "privateEndpointConnections", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -4036,8 +3993,7 @@ "ResourceKey": "privateLinkSubResourceName", "ResourceKeySegment": "privateLinkResources", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -4213,8 +4169,7 @@ "ResourceKey": "productId", "ResourceKeySegment": "products", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -4296,8 +4251,7 @@ "ResourceKey": "schemaId", "ResourceKeySegment": "schemas", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -4343,8 +4297,7 @@ "ResourceKey": "settingsType", "ResourceKeySegment": "settings", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -4454,8 +4407,7 @@ "ResourceKey": "sid", "ResourceKeySegment": "subscriptions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -4499,8 +4451,7 @@ "ResourceKey": "sid", "ResourceKeySegment": "subscriptions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -4655,8 +4606,7 @@ "ResourceKey": "accessName", "ResourceKeySegment": "tenant", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -4792,8 +4742,7 @@ "ResourceKey": "userId", "ResourceKeySegment": "users", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-apimanagement/tsp-output/ApiManagementServiceResource.tsp b/packages/extensions/openapi-to-typespec/test/arm-apimanagement/tsp-output/ApiManagementServiceResource.tsp index d7e3da75e6..d6945a5e8d 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-apimanagement/tsp-output/ApiManagementServiceResource.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-apimanagement/tsp-output/ApiManagementServiceResource.tsp @@ -37,7 +37,7 @@ model ApiManagementServiceResource #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" identity?: ApiManagementServiceIdentity; - ...Azure.ResourceManager.EntityTagProperty; + ...Azure.ResourceManager.Legacy.EntityTagProperty; ...Azure.ResourceManager.AvailabilityZonesProperty; } @@ -730,7 +730,6 @@ interface ApiManagementServiceResources { @@doc(ApiManagementServiceResource.name, "The name of the API Management service." ); -@@encodedName(ApiManagementServiceResource.eTag, "application/json", "etag"); @@doc(ApiManagementServiceResource.properties, "Properties of the API Management service." ); diff --git a/packages/extensions/openapi-to-typespec/test/arm-apimanagement/tsp-output/DeletedServiceContract.tsp b/packages/extensions/openapi-to-typespec/test/arm-apimanagement/tsp-output/DeletedServiceContract.tsp index 4de25e73da..b9bd78b505 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-apimanagement/tsp-output/DeletedServiceContract.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-apimanagement/tsp-output/DeletedServiceContract.tsp @@ -14,7 +14,6 @@ namespace Azure.ResourceManager.ApiManagement; * Deleted API Management Service information. */ @subscriptionResource -@parentResource(SubscriptionLocationResource) model DeletedServiceContract is Azure.ResourceManager.ProxyResource { ...ResourceNameParameter< diff --git a/packages/extensions/openapi-to-typespec/test/arm-authorization/resources.json b/packages/extensions/openapi-to-typespec/test/arm-authorization/resources.json index b1bae78f17..643fbb767a 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-authorization/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-authorization/resources.json @@ -79,8 +79,7 @@ "ResourceKey": "denyAssignmentId", "ResourceKeySegment": "denyAssignments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -126,8 +125,7 @@ "ResourceKey": "resourceProviderNamespace", "ResourceKeySegment": "providerOperations", "IsTrackedResource": false, - "IsTenantResource": true, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Tenant", "IsSingletonResource": false @@ -200,8 +198,7 @@ "ResourceKey": "roleAssignmentName", "ResourceKeySegment": "roleAssignments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -274,8 +271,7 @@ "ResourceKey": "roleDefinitionId", "ResourceKeySegment": "roleDefinitions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -321,8 +317,7 @@ "ResourceKey": "roleAssignmentScheduleName", "ResourceKeySegment": "roleAssignmentSchedules", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -368,8 +363,7 @@ "ResourceKey": "roleAssignmentScheduleInstanceName", "ResourceKeySegment": "roleAssignmentScheduleInstances", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -452,8 +446,7 @@ "ResourceKey": "roleAssignmentScheduleRequestName", "ResourceKeySegment": "roleAssignmentScheduleRequests", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -499,8 +492,7 @@ "ResourceKey": "roleEligibilityScheduleName", "ResourceKeySegment": "roleEligibilitySchedules", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -546,8 +538,7 @@ "ResourceKey": "roleEligibilityScheduleInstanceName", "ResourceKeySegment": "roleEligibilityScheduleInstances", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -630,8 +621,7 @@ "ResourceKey": "roleEligibilityScheduleRequestName", "ResourceKeySegment": "roleEligibilityScheduleRequests", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -686,8 +676,7 @@ "ResourceKey": "roleManagementPolicyName", "ResourceKeySegment": "roleManagementPolicies", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -751,8 +740,7 @@ "ResourceKey": "roleManagementPolicyAssignmentName", "ResourceKeySegment": "roleManagementPolicyAssignments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-azureintegrationspaces/resources.json b/packages/extensions/openapi-to-typespec/test/arm-azureintegrationspaces/resources.json index 2e27d9ae5f..4412e940e6 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-azureintegrationspaces/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-azureintegrationspaces/resources.json @@ -81,8 +81,7 @@ "ResourceKey": "spaceName", "ResourceKeySegment": "spaces", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -205,8 +204,7 @@ "ResourceKey": "applicationName", "ResourceKeySegment": "applications", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -279,8 +277,7 @@ "ResourceKey": "businessProcessName", "ResourceKeySegment": "businessProcesses", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -326,8 +323,7 @@ "ResourceKey": "businessProcessVersion", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -400,8 +396,7 @@ "ResourceKey": "resourceName", "ResourceKeySegment": "resources", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -474,8 +469,7 @@ "ResourceKey": "infrastructureResourceName", "ResourceKeySegment": "infrastructureResources", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/resources.json b/packages/extensions/openapi-to-typespec/test/arm-compute/resources.json index 7b62c51e31..fa07f6bf73 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/resources.json @@ -270,8 +270,7 @@ "ResourceKey": "vmScaleSetName", "ResourceKeySegment": "virtualMachineScaleSets", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -344,8 +343,7 @@ "ResourceKey": "vmssExtensionName", "ResourceKeySegment": "extensions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -377,8 +375,7 @@ "ResourceKey": "latest", "ResourceKeySegment": "rollingUpgrades", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -451,8 +448,7 @@ "ResourceKey": "vmExtensionName", "ResourceKeySegment": "extensions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -638,8 +634,7 @@ "ResourceKey": "instanceId", "ResourceKeySegment": "virtualMachines", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -712,8 +707,7 @@ "ResourceKey": "vmExtensionName", "ResourceKeySegment": "extensions", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": true, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -971,8 +965,7 @@ "ResourceKey": "vmName", "ResourceKeySegment": "virtualMachines", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1031,8 +1024,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": true, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -1133,8 +1125,7 @@ "ResourceKey": "availabilitySetName", "ResourceKeySegment": "availabilitySets", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1221,8 +1212,7 @@ "ResourceKey": "proximityPlacementGroupName", "ResourceKeySegment": "proximityPlacementGroups", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1309,8 +1299,7 @@ "ResourceKey": "hostGroupName", "ResourceKeySegment": "hostGroups", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1406,8 +1395,7 @@ "ResourceKey": "hostName", "ResourceKeySegment": "hosts", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1504,8 +1492,7 @@ "ResourceKey": "sshPublicKeyName", "ResourceKeySegment": "sshPublicKeys", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1592,8 +1579,7 @@ "ResourceKey": "imageName", "ResourceKeySegment": "images", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1680,8 +1666,7 @@ "ResourceKey": "restorePointCollectionName", "ResourceKeySegment": "restorePointCollections", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1740,8 +1725,7 @@ "ResourceKey": "restorePointName", "ResourceKeySegment": "restorePoints", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1828,8 +1812,7 @@ "ResourceKey": "capacityReservationGroupName", "ResourceKeySegment": "capacityReservationGroups", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1902,8 +1885,7 @@ "ResourceKey": "capacityReservationName", "ResourceKeySegment": "capacityReservations", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1976,8 +1958,7 @@ "ResourceKey": "runCommandName", "ResourceKeySegment": "runCommands", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2048,8 +2029,7 @@ "ResourceKey": "runCommandName", "ResourceKeySegment": "runCommands", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2155,8 +2135,7 @@ "ResourceKey": "diskName", "ResourceKeySegment": "disks", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2257,8 +2236,7 @@ "ResourceKey": "diskAccessName", "ResourceKeySegment": "diskAccesses", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2331,8 +2309,7 @@ "ResourceKey": "privateEndpointConnectionName", "ResourceKeySegment": "privateEndpointConnections", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2433,8 +2410,7 @@ "ResourceKey": "diskEncryptionSetName", "ResourceKeySegment": "diskEncryptionSets", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2499,8 +2475,7 @@ "ResourceKey": "diskRestorePointName", "ResourceKeySegment": "diskRestorePoints", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2606,8 +2581,7 @@ "ResourceKey": "snapshotName", "ResourceKeySegment": "snapshots", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2704,8 +2678,7 @@ "ResourceKey": "galleryName", "ResourceKeySegment": "galleries", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2778,8 +2751,7 @@ "ResourceKey": "galleryImageName", "ResourceKeySegment": "images", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2852,8 +2824,7 @@ "ResourceKey": "galleryImageVersionName", "ResourceKeySegment": "versions", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2926,8 +2897,7 @@ "ResourceKey": "galleryApplicationName", "ResourceKeySegment": "applications", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3000,8 +2970,7 @@ "ResourceKey": "galleryApplicationVersionName", "ResourceKeySegment": "versions", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3047,8 +3016,7 @@ "ResourceKey": "galleryUniqueName", "ResourceKeySegment": "sharedGalleries", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": true, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -3094,8 +3062,7 @@ "ResourceKey": "galleryImageName", "ResourceKeySegment": "images", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -3141,8 +3108,7 @@ "ResourceKey": "galleryImageVersionName", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -3174,8 +3140,7 @@ "ResourceKey": "publicGalleryName", "ResourceKeySegment": "communityGalleries", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": true, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -3221,8 +3186,7 @@ "ResourceKey": "galleryImageName", "ResourceKeySegment": "images", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -3268,8 +3232,7 @@ "ResourceKey": "galleryImageVersionName", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -3370,8 +3333,7 @@ "ResourceKey": "roleInstanceName", "ResourceKeySegment": "roleInstances", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": true, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3417,8 +3379,7 @@ "ResourceKey": "roleName", "ResourceKeySegment": "roles", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3600,8 +3561,7 @@ "ResourceKey": "cloudServiceName", "ResourceKeySegment": "cloudServices", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3647,8 +3607,7 @@ "ResourceKey": "osVersionName", "ResourceKeySegment": "cloudServiceOsVersions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": true, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -3694,8 +3653,7 @@ "ResourceKey": "osFamilyName", "ResourceKeySegment": "cloudServiceOsFamilies", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": true, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGallery.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGallery.tsp index 534459abd2..0f201e981b 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGallery.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGallery.tsp @@ -15,7 +15,6 @@ namespace Microsoft.Compute; * Specifies information about the Community Gallery that you want to create or update. */ @subscriptionResource -@parentResource(SubscriptionLocationResource) model CommunityGallery is Azure.ResourceManager.ProxyResource<{}> { ...ResourceNameParameter< Resource = CommunityGallery, diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGalleryImage.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGalleryImage.tsp index cd7574fa46..4a14e43d8c 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGalleryImage.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGalleryImage.tsp @@ -14,6 +14,7 @@ namespace Microsoft.Compute; /** * Specifies information about the gallery image definition that you want to create or update. */ +@subscriptionResource @parentResource(CommunityGallery) model CommunityGalleryImage is Azure.ResourceManager.ProxyResource { @@ -30,13 +31,17 @@ interface CommunityGalleryImages { /** * Get a community gallery image. */ - get is ArmResourceRead; + get is ArmResourceRead< + CommunityGalleryImage, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters + >; /** * List community gallery images inside a gallery. */ list is ArmResourceListByParent< CommunityGalleryImage, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters, Response = ArmResponse >; } diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGalleryImageVersion.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGalleryImageVersion.tsp index 82dee52c72..e5c5663cac 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGalleryImageVersion.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/CommunityGalleryImageVersion.tsp @@ -14,6 +14,7 @@ namespace Microsoft.Compute; /** * Specifies information about the gallery image version that you want to create or update. */ +@subscriptionResource @parentResource(CommunityGalleryImage) model CommunityGalleryImageVersion is Azure.ResourceManager.ProxyResource { @@ -30,13 +31,17 @@ interface CommunityGalleryImageVersions { /** * Get a community gallery image version. */ - get is ArmResourceRead; + get is ArmResourceRead< + CommunityGalleryImageVersion, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters + >; /** * List community gallery image versions inside an image. */ list is ArmResourceListByParent< CommunityGalleryImageVersion, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters, Response = ArmResponse >; } diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/OSFamily.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/OSFamily.tsp index 8bc7a8ae89..3f7f622dfa 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/OSFamily.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/OSFamily.tsp @@ -14,7 +14,6 @@ namespace Microsoft.Compute; * Describes a cloud service OS family. */ @subscriptionResource -@parentResource(SubscriptionLocationResource) model OSFamily is Azure.ResourceManager.ProxyResource { ...ResourceNameParameter< Resource = OSFamily, diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/OSVersion.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/OSVersion.tsp index 73961654d0..46c0347269 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/OSVersion.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/OSVersion.tsp @@ -14,7 +14,6 @@ namespace Microsoft.Compute; * Describes a cloud service OS version. */ @subscriptionResource -@parentResource(SubscriptionLocationResource) model OSVersion is Azure.ResourceManager.ProxyResource { ...ResourceNameParameter< Resource = OSVersion, diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/RoleInstance.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/RoleInstance.tsp index f5e493c13d..f536dac735 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/RoleInstance.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/RoleInstance.tsp @@ -16,7 +16,7 @@ namespace Microsoft.Compute; */ @parentResource(CloudService) model RoleInstance - is Azure.ResourceManager.TrackedResource { + is Azure.ResourceManager.Legacy.TrackedResourceWithOptionalLocation { ...ResourceNameParameter< Resource = RoleInstance, KeyName = "roleInstanceName", diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGallery.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGallery.tsp index 910767c194..5b9a12b37e 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGallery.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGallery.tsp @@ -15,7 +15,6 @@ namespace Microsoft.Compute; * Specifies information about the Shared Gallery that you want to create or update. */ @subscriptionResource -@parentResource(SubscriptionLocationResource) model SharedGallery is Azure.ResourceManager.ProxyResource<{}> { ...ResourceNameParameter< Resource = SharedGallery, diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGalleryImage.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGalleryImage.tsp index 90003d33c0..664ac54f5c 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGalleryImage.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGalleryImage.tsp @@ -14,6 +14,7 @@ namespace Microsoft.Compute; /** * Specifies information about the gallery image definition that you want to create or update. */ +@subscriptionResource @parentResource(SharedGallery) model SharedGalleryImage is Azure.ResourceManager.ProxyResource { @@ -30,13 +31,17 @@ interface SharedGalleryImages { /** * Get a shared gallery image by subscription id or tenant id. */ - get is ArmResourceRead; + get is ArmResourceRead< + SharedGalleryImage, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters + >; /** * List shared gallery images by subscription id or tenant id. */ list is ArmResourceListByParent< SharedGalleryImage, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters, Parameters = { /** * The query parameter to decide what shared galleries to fetch when doing listing operations. diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGalleryImageVersion.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGalleryImageVersion.tsp index 8b40549cf1..14ecd6765c 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGalleryImageVersion.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/SharedGalleryImageVersion.tsp @@ -14,6 +14,7 @@ namespace Microsoft.Compute; /** * Specifies information about the gallery image version that you want to create or update. */ +@subscriptionResource @parentResource(SharedGalleryImage) model SharedGalleryImageVersion is Azure.ResourceManager.ProxyResource { @@ -30,13 +31,17 @@ interface SharedGalleryImageVersions { /** * Get a shared gallery image version by subscription id or tenant id. */ - get is ArmResourceRead; + get is ArmResourceRead< + SharedGalleryImageVersion, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters + >; /** * List shared gallery image versions by subscription id or tenant id. */ list is ArmResourceListByParent< SharedGalleryImageVersion, + BaseParameters = Azure.ResourceManager.Foundations.SubscriptionBaseParameters, Parameters = { /** * The query parameter to decide what shared galleries to fetch when doing listing operations. diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/VirtualMachineExtension.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/VirtualMachineExtension.tsp index 97f761afbd..bf6244bdb7 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/VirtualMachineExtension.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/VirtualMachineExtension.tsp @@ -16,7 +16,7 @@ namespace Microsoft.Compute; */ @parentResource(VirtualMachine) model VirtualMachineExtension - is Azure.ResourceManager.TrackedResource { + is Azure.ResourceManager.Legacy.TrackedResourceWithOptionalLocation { ...ResourceNameParameter< Resource = VirtualMachineExtension, KeyName = "vmExtensionName", diff --git a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/VirtualMachineExtensionImage.tsp b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/VirtualMachineExtensionImage.tsp index 96c0d36f45..0857878092 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/VirtualMachineExtensionImage.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-compute/tsp-output/VirtualMachineExtensionImage.tsp @@ -14,7 +14,6 @@ namespace Microsoft.Compute; * Describes a Virtual Machine Extension Image. */ @subscriptionResource -@parentResource(SubscriptionLocationResource) model VirtualMachineExtensionImage is Azure.ResourceManager.TrackedResource { ...ResourceNameParameter< diff --git a/packages/extensions/openapi-to-typespec/test/arm-guestconfiguration/resources.json b/packages/extensions/openapi-to-typespec/test/arm-guestconfiguration/resources.json index 259a7db0ac..afddd768a6 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-guestconfiguration/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-guestconfiguration/resources.json @@ -104,8 +104,7 @@ "ResourceKey": "guestConfigurationAssignmentName", "ResourceKeySegment": "guestConfigurationAssignments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Extension", "IsSingletonResource": false @@ -199,8 +198,7 @@ "ResourceKey": "guestConfigurationAssignmentName", "ResourceKeySegment": "guestConfigurationAssignments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Extension", "IsSingletonResource": false @@ -294,8 +292,7 @@ "ResourceKey": "name", "ResourceKeySegment": "guestConfigurationAssignments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Extension", "IsSingletonResource": false @@ -389,8 +386,7 @@ "ResourceKey": "guestConfigurationAssignmentName", "ResourceKeySegment": "guestConfigurationAssignments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Extension", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/resources.json b/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/resources.json index d4436dfd2a..92b886a8cd 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/resources.json @@ -135,8 +135,7 @@ "ResourceKey": "computeName", "ResourceKeySegment": "computes", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": true, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -209,8 +208,7 @@ "ResourceKey": "codeName", "ResourceKeySegment": "codes", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -281,8 +279,7 @@ "ResourceKey": "name", "ResourceKeySegment": "codes", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -365,8 +362,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -447,8 +443,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -521,8 +516,7 @@ "ResourceKey": "componentName", "ResourceKeySegment": "components", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -593,8 +587,7 @@ "ResourceKey": "name", "ResourceKeySegment": "components", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -667,8 +660,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -739,8 +731,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -813,8 +804,7 @@ "ResourceKey": "name", "ResourceKeySegment": "data", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -885,8 +875,7 @@ "ResourceKey": "name", "ResourceKeySegment": "data", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -969,8 +958,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1041,8 +1029,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1115,8 +1102,7 @@ "ResourceKey": "environmentName", "ResourceKeySegment": "environments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1187,8 +1173,7 @@ "ResourceKey": "name", "ResourceKeySegment": "environments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1261,8 +1246,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1333,8 +1317,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1407,8 +1390,7 @@ "ResourceKey": "modelName", "ResourceKeySegment": "models", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1479,8 +1461,7 @@ "ResourceKey": "name", "ResourceKeySegment": "models", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1572,8 +1553,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1654,8 +1634,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1738,8 +1717,7 @@ "ResourceKey": "endpointName", "ResourceKeySegment": "batchEndpoints", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1812,8 +1790,7 @@ "ResourceKey": "deploymentName", "ResourceKeySegment": "deployments", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1896,8 +1873,7 @@ "ResourceKey": "name", "ResourceKeySegment": "datastores", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1970,8 +1946,7 @@ "ResourceKey": "name", "ResourceKeySegment": "featuresets", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2017,8 +1992,7 @@ "ResourceKey": "featureName", "ResourceKeySegment": "features", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2114,8 +2088,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2188,8 +2161,7 @@ "ResourceKey": "name", "ResourceKeySegment": "featurestoreEntities", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2262,8 +2234,7 @@ "ResourceKey": "version", "ResourceKeySegment": "versions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2346,8 +2317,7 @@ "ResourceKey": "id", "ResourceKeySegment": "jobs", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2448,8 +2418,7 @@ "ResourceKey": "id", "ResourceKeySegment": "labelingJobs", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2550,8 +2519,7 @@ "ResourceKey": "endpointName", "ResourceKeySegment": "onlineEndpoints", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2647,8 +2615,7 @@ "ResourceKey": "deploymentName", "ResourceKeySegment": "deployments", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2721,8 +2688,7 @@ "ResourceKey": "name", "ResourceKeySegment": "schedules", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -2819,8 +2785,7 @@ "ResourceKey": "registryName", "ResourceKeySegment": "registries", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3019,8 +2984,7 @@ "ResourceKey": "workspaceName", "ResourceKeySegment": "workspaces", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": true, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3103,8 +3067,7 @@ "ResourceKey": "connectionName", "ResourceKeySegment": "connections", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3177,8 +3140,7 @@ "ResourceKey": "ruleName", "ResourceKeySegment": "outboundRules", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -3251,8 +3213,7 @@ "ResourceKey": "privateEndpointConnectionName", "ResourceKeySegment": "privateEndpointConnections", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": true, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/ComputeResource.tsp b/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/ComputeResource.tsp index 393f7600a0..8e0734cbbe 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/ComputeResource.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/ComputeResource.tsp @@ -16,7 +16,8 @@ namespace Azure.ResourceManager.MachineLearning; * Machine Learning compute object wrapped into ARM resource envelope. */ @parentResource(Workspace) -model ComputeResource is Azure.ResourceManager.TrackedResource<{}> { +model ComputeResource + is Azure.ResourceManager.Legacy.TrackedResourceWithOptionalLocation<{}> { ...ResourceNameParameter< Resource = ComputeResource, KeyName = "computeName", diff --git a/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/PrivateEndpointConnection.tsp b/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/PrivateEndpointConnection.tsp index 4c22b7daef..419347f28c 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/PrivateEndpointConnection.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/PrivateEndpointConnection.tsp @@ -16,7 +16,7 @@ namespace Azure.ResourceManager.MachineLearning; */ @parentResource(Workspace) model PrivateEndpointConnection - is Azure.ResourceManager.TrackedResource { + is Azure.ResourceManager.Legacy.TrackedResourceWithOptionalLocation { ...ResourceNameParameter< Resource = PrivateEndpointConnection, KeyName = "privateEndpointConnectionName", diff --git a/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/Workspace.tsp b/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/Workspace.tsp index 80e96efa6b..e99ee5b99c 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/Workspace.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-machinelearningservices/tsp-output/Workspace.tsp @@ -14,7 +14,10 @@ namespace Azure.ResourceManager.MachineLearning; * An object that represents a machine learning workspace. */ model Workspace - is Azure.ResourceManager.TrackedResource { + is Azure.ResourceManager.Legacy.TrackedResourceWithOptionalLocation< + WorkspaceProperties, + false + > { ...ResourceNameParameter< Resource = Workspace, KeyName = "workspaceName", diff --git a/packages/extensions/openapi-to-typespec/test/arm-networkanalytics/resources.json b/packages/extensions/openapi-to-typespec/test/arm-networkanalytics/resources.json index 5430fe4361..6bf4349e02 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-networkanalytics/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-networkanalytics/resources.json @@ -127,8 +127,7 @@ "ResourceKey": "dataProductName", "ResourceKeySegment": "dataProducts", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -188,8 +187,7 @@ "ResourceKey": "default", "ResourceKeySegment": "dataProductsCatalogs", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -281,8 +279,7 @@ "ResourceKey": "dataTypeName", "ResourceKeySegment": "dataTypes", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/resources.json b/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/resources.json index f2fcba86ff..8147f9a697 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/resources.json @@ -81,8 +81,7 @@ "ResourceKey": "name", "ResourceKeySegment": "accounts", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -128,8 +127,7 @@ "ResourceKey": "name", "ResourceKeySegment": "quotas", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": true, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/swagger-output/swagger.json b/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/swagger-output/swagger.json index 036dafeb36..88d3745cee 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/swagger-output/swagger.json +++ b/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/swagger-output/swagger.json @@ -125,7 +125,7 @@ } } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzurePlaywrightService/locations/{location}/quotas": { + "/subscriptions/{subscriptionId}/providers/Microsoft.AzurePlaywrightService/quotas": { "get": { "operationId": "Quotas_ListBySubscription", "tags": [ @@ -138,9 +138,6 @@ }, { "$ref": "../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" } ], "responses": { @@ -167,7 +164,7 @@ } } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.AzurePlaywrightService/locations/{location}/quotas/{name}": { + "/subscriptions/{subscriptionId}/providers/Microsoft.AzurePlaywrightService/quotas/{name}": { "get": { "operationId": "Quotas_Get", "tags": [ @@ -181,9 +178,6 @@ { "$ref": "../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, - { - "$ref": "../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" - }, { "name": "name", "in": "path", diff --git a/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/tsp-output/Quota.tsp b/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/tsp-output/Quota.tsp index 9fa66da57f..2b620ede5d 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/tsp-output/Quota.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-playwrighttesting/tsp-output/Quota.tsp @@ -14,7 +14,6 @@ namespace Microsoft.AzurePlaywrightService; * A quota resource */ @subscriptionResource -@parentResource(SubscriptionLocationResource) model Quota is Azure.ResourceManager.ProxyResource { ...ResourceNameParameter< Resource = Quota, diff --git a/packages/extensions/openapi-to-typespec/test/arm-quota/resources.json b/packages/extensions/openapi-to-typespec/test/arm-quota/resources.json index b91557cd8e..2b069c0a11 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-quota/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-quota/resources.json @@ -81,8 +81,7 @@ "ResourceKey": "groupQuotaName", "ResourceKeySegment": "groupQuotas", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": true, "ScopeType": "ManagementGroup", "IsSingletonResource": false @@ -155,8 +154,7 @@ "ResourceKey": "subscriptionId", "ResourceKeySegment": "subscriptions", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ManagementGroup", "IsSingletonResource": false @@ -202,8 +200,7 @@ "ResourceKey": "requestId", "ResourceKeySegment": "subscriptionRequests", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ManagementGroup", "IsSingletonResource": false @@ -244,8 +241,7 @@ "ResourceKey": "location", "ResourceKeySegment": "groupQuotaLimits", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ManagementGroup", "IsSingletonResource": false @@ -277,8 +273,7 @@ "ResourceKey": "requestId", "ResourceKeySegment": "groupQuotaRequests", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ManagementGroup", "IsSingletonResource": false @@ -319,8 +314,7 @@ "ResourceKey": "location", "ResourceKeySegment": "quotaAllocations", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": true, "ScopeType": "ManagementGroup", "IsSingletonResource": false @@ -366,8 +360,7 @@ "ResourceKey": "allocationId", "ResourceKeySegment": "quotaAllocationRequests", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": true, "ScopeType": "ManagementGroup", "IsSingletonResource": false @@ -413,8 +406,7 @@ "ResourceKey": "resourceName", "ResourceKeySegment": "usages", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -478,8 +470,7 @@ "ResourceKey": "resourceName", "ResourceKeySegment": "quotas", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false @@ -525,8 +516,7 @@ "ResourceKey": "id", "ResourceKeySegment": "quotaRequests", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Scope", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-servicenetworking/resources.json b/packages/extensions/openapi-to-typespec/test/arm-servicenetworking/resources.json index ad13fbabfb..746dcc1977 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-servicenetworking/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-servicenetworking/resources.json @@ -81,8 +81,7 @@ "ResourceKey": "trafficControllerName", "ResourceKeySegment": "trafficControllers", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -155,8 +154,7 @@ "ResourceKey": "associationName", "ResourceKeySegment": "associations", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -229,8 +227,7 @@ "ResourceKey": "frontendName", "ResourceKeySegment": "frontends", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-sphere/resources.json b/packages/extensions/openapi-to-typespec/test/arm-sphere/resources.json index 5b033d67c8..f31c11df22 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-sphere/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-sphere/resources.json @@ -143,8 +143,7 @@ "ResourceKey": "catalogName", "ResourceKeySegment": "catalogs", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -209,8 +208,7 @@ "ResourceKey": "serialNumber", "ResourceKeySegment": "certificates", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -283,8 +281,7 @@ "ResourceKey": "imageName", "ResourceKeySegment": "images", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -380,8 +377,7 @@ "ResourceKey": "productName", "ResourceKeySegment": "products", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -473,8 +469,7 @@ "ResourceKey": "deviceGroupName", "ResourceKeySegment": "deviceGroups", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -547,8 +542,7 @@ "ResourceKey": "deploymentName", "ResourceKeySegment": "deployments", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -631,8 +625,7 @@ "ResourceKey": "deviceName", "ResourceKeySegment": "devices", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-storage/resources.json b/packages/extensions/openapi-to-typespec/test/arm-storage/resources.json index fe76447453..fafd677a86 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-storage/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-storage/resources.json @@ -184,8 +184,7 @@ "ResourceKey": "accountName", "ResourceKeySegment": "storageAccounts", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -217,8 +216,7 @@ "ResourceKey": "deletedAccountName", "ResourceKeySegment": "deletedAccounts", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": true, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "Subscription", "IsSingletonResource": false @@ -277,8 +275,7 @@ "ResourceKey": "managementPolicyName", "ResourceKeySegment": "managementPolicies", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -351,8 +348,7 @@ "ResourceKey": "blobInventoryPolicyName", "ResourceKeySegment": "inventoryPolicies", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -425,8 +421,7 @@ "ResourceKey": "privateEndpointConnectionName", "ResourceKeySegment": "privateEndpointConnections", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -499,8 +494,7 @@ "ResourceKey": "objectReplicationPolicyId", "ResourceKeySegment": "objectReplicationPolicies", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -592,8 +586,7 @@ "ResourceKey": "username", "ResourceKeySegment": "localUsers", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -657,8 +650,7 @@ "ResourceKey": "encryptionScopeName", "ResourceKeySegment": "encryptionScopes", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -722,8 +714,7 @@ "ResourceKey": "BlobServicesName", "ResourceKeySegment": "blobServices", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -833,8 +824,7 @@ "ResourceKey": "containerName", "ResourceKeySegment": "containers", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -912,8 +902,7 @@ "ResourceKey": "immutabilityPolicyName", "ResourceKeySegment": "immutabilityPolicies", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -977,8 +966,7 @@ "ResourceKey": "FileServicesName", "ResourceKeySegment": "fileServices", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -1070,8 +1058,7 @@ "ResourceKey": "shareName", "ResourceKeySegment": "shares", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1135,8 +1122,7 @@ "ResourceKey": "queueServiceName", "ResourceKeySegment": "queueServices", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -1209,8 +1195,7 @@ "ResourceKey": "queueName", "ResourceKeySegment": "queues", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -1274,8 +1259,7 @@ "ResourceKey": "tableServiceName", "ResourceKeySegment": "tableServices", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -1348,8 +1332,7 @@ "ResourceKey": "tableName", "ResourceKeySegment": "tables", "IsTrackedResource": false, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false diff --git a/packages/extensions/openapi-to-typespec/test/arm-storage/swagger-output/swagger.json b/packages/extensions/openapi-to-typespec/test/arm-storage/swagger-output/swagger.json index 9897d6f64e..df9505a409 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-storage/swagger-output/swagger.json +++ b/packages/extensions/openapi-to-typespec/test/arm-storage/swagger-output/swagger.json @@ -206,7 +206,7 @@ } } }, - "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/locations/{location}/deletedAccounts/{deletedAccountName}": { + "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/deletedAccounts/{deletedAccountName}": { "get": { "operationId": "DeletedAccounts_Get", "tags": [ @@ -220,9 +220,6 @@ { "$ref": "../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, - { - "$ref": "../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" - }, { "name": "deletedAccountName", "in": "path", diff --git a/packages/extensions/openapi-to-typespec/test/arm-storage/tsp-output/DeletedAccount.tsp b/packages/extensions/openapi-to-typespec/test/arm-storage/tsp-output/DeletedAccount.tsp index 33d2ec6ed9..758aa76c0c 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-storage/tsp-output/DeletedAccount.tsp +++ b/packages/extensions/openapi-to-typespec/test/arm-storage/tsp-output/DeletedAccount.tsp @@ -14,7 +14,6 @@ namespace Microsoft.Storage; * Deleted storage account */ @subscriptionResource -@parentResource(SubscriptionLocationResource) model DeletedAccount is Azure.ResourceManager.ProxyResource { ...ResourceNameParameter< diff --git a/packages/extensions/openapi-to-typespec/test/arm-test/resources.json b/packages/extensions/openapi-to-typespec/test/arm-test/resources.json index 44d197a849..64fc4549ed 100644 --- a/packages/extensions/openapi-to-typespec/test/arm-test/resources.json +++ b/packages/extensions/openapi-to-typespec/test/arm-test/resources.json @@ -81,8 +81,7 @@ "ResourceKey": "employeeName", "ResourceKeySegment": "employees", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -114,8 +113,7 @@ "ResourceKey": "default", "ResourceKeySegment": "enrolls", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": true @@ -161,8 +159,7 @@ "ResourceKey": "name", "ResourceKeySegment": "dictproperties", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false @@ -208,8 +205,7 @@ "ResourceKey": "name", "ResourceKeySegment": "arraydefaults", "IsTrackedResource": true, - "IsTenantResource": false, - "IsSubscriptionResource": false, + "IsTrackedResourceWithOptionalLocation": false, "IsManagementGroupResource": false, "ScopeType": "ResourceGroup", "IsSingletonResource": false