diff --git a/packages/azure-http-specs/spec-summary.md b/packages/azure-http-specs/spec-summary.md index 8a104557c..d4300a4c7 100644 --- a/packages/azure-http-specs/spec-summary.md +++ b/packages/azure-http-specs/spec-summary.md @@ -720,12 +720,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_CommonTypes_ManagedIdentity_ManagedIdentityTrackedResources_createWithSystemAssigned +### Azure_ResourceManager_CommonProperties_ManagedIdentity_createWithSystemAssigned - Endpoint: `put https://management.azure.com` Resource PUT operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", Expected query parameter: api-version=2023-12-01-preview Expected request body: @@ -746,7 +746,7 @@ Expected response body: ```json { - "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", + "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", "location": "eastus", "tags": { "tagKey1": "tagValue1" @@ -762,19 +762,19 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_CommonTypes_ManagedIdentity_ManagedIdentityTrackedResources_get +### Azure_ResourceManager_CommonProperties_ManagedIdentity_get - Endpoint: `get https://management.azure.com` Resource GET operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { - "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", + "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", "location": "eastus", "tags": { "tagKey1": "tagValue1" @@ -790,12 +790,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_CommonTypes_ManagedIdentity_ManagedIdentityTrackedResources_updateWithUserAssignedAndSystemAssigned +### Azure_ResourceManager_CommonProperties_ManagedIdentity_updateWithUserAssignedAndSystemAssigned - Endpoint: `patch https://management.azure.com` Resource PATCH operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", Expected query parameter: api-version=2023-12-01-preview Expected request body: @@ -814,7 +814,7 @@ Expected response body: ```json { - "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", + "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", "location": "eastus", "tags": { "tagKey1": "tagValue1" @@ -836,12 +836,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_NestedProxyResources_createOrReplace +### Azure_ResourceManager_Resources_Nested_createOrReplace - Endpoint: `put https://management.azure.com` Resource PUT operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested Expected query parameter: api-version=2023-12-01-preview Expected request body: @@ -857,7 +857,7 @@ Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", "name": "nested", "type": "nested", "properties":{ @@ -875,28 +875,28 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_NestedProxyResources_delete +### Azure_ResourceManager_Resources_Nested_delete - Endpoint: `delete https://management.azure.com` Resource DELETE operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested Expected query parameter: api-version=2023-12-01-preview Expected response status code: 204 -### Azure_ResourceManager_Models_Resources_NestedProxyResources_get +### Azure_ResourceManager_Resources_Nested_get - Endpoint: `get https://management.azure.com` Resource GET operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", "name": "nested", "type": "nested", "properties":{ @@ -914,12 +914,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_NestedProxyResources_listByTopLevelTrackedResource +### Azure_ResourceManager_Resources_Nested_listByTopLevelTrackedResource - Endpoint: `get https://management.azure.com` Resource LIST by parent resource operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested Expected query parameter: api-version=2023-12-01-preview Expected response body: @@ -927,7 +927,7 @@ Expected response body: ```json { "value": [{ - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", "name": "nested", "type": "nested", "properties":{ @@ -946,12 +946,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_NestedProxyResources_update +### Azure_ResourceManager_Resources_Nested_update - Endpoint: `patch https://management.azure.com` Resource PATCH operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested Expected query parameter: api-version=2023-12-01-preview Expected request body: @@ -967,7 +967,7 @@ Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", "name": "nested", "type": "nested", "properties":{ @@ -985,12 +985,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_SingletonTrackedResources_createOrUpdate +### Azure_ResourceManager_Resources_Singleton_createOrUpdate - Endpoint: `put https://management.azure.com` Resource PUT operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default Expected query parameter: api-version=2023-12-01-preview Expected request body: @@ -1007,9 +1007,9 @@ Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", "name": "default", - "type": "Azure.ResourceManager.Models.Resources/singletonTrackedResources", + "type": "Azure.ResourceManager.Resources/singletonTrackedResources", "location": "eastus", "properties": { "description": "valid", @@ -1026,21 +1026,21 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_SingletonTrackedResources_getByResourceGroup +### Azure_ResourceManager_Resources_Singleton_getByResourceGroup - Endpoint: `get https://management.azure.com` Resource GET operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", "name": "default", - "type": "Azure.ResourceManager.Models.Resources/singletonTrackedResources", + "type": "Azure.ResourceManager.Resources/singletonTrackedResources", "location": "eastus", "properties":{ "description": "valid", @@ -1057,12 +1057,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_SingletonTrackedResources_listByResourceGroup +### Azure_ResourceManager_Resources_Singleton_listByResourceGroup - Endpoint: `get https://management.azure.com` Resource LIST by resource group operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources Expected query parameter: api-version=2023-12-01-preview Expected response body: @@ -1070,9 +1070,9 @@ Expected response body: ```json { "value": [{ - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", "name": "default", - "type": "Azure.ResourceManager.Models.Resources/singletonTrackedResources", + "type": "Azure.ResourceManager.Resources/singletonTrackedResources", "location": "eastus", "properties":{ "description": "valid", @@ -1090,18 +1090,18 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_SingletonTrackedResources_update +### Azure_ResourceManager_Resources_Singleton_update - Endpoint: `patch https://management.azure.com` Resource PATCH operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default Expected query parameter: api-version=2023-12-01-preview Expected request body: ```json { - "location": "eastus2", + "location": "eastus", "properties": { "description": "valid2" } @@ -1112,10 +1112,10 @@ Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", "name": "default", - "type": "Azure.ResourceManager.Models.Resources/singletonTrackedResources", - "location": "eastus2", + "type": "Azure.ResourceManager.Resources/singletonTrackedResources", + "location": "eastus", "properties":{ "description": "valid2", "provisioningState": "Succeeded" @@ -1131,12 +1131,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_actionSync +### Azure_ResourceManager_Resources_TopLevel_actionSync - Endpoint: `post https://management.azure.com` Resource sync action. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/actionSync + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/actionSync Expected query parameter: api-version=2023-12-01-preview Expected request body: @@ -1147,12 +1147,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_createOrReplace +### Azure_ResourceManager_Resources_TopLevel_createOrReplace - Endpoint: `put https://management.azure.com` Resource PUT operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top Expected query parameter: api-version=2023-12-01-preview Expected request body: @@ -1169,7 +1169,7 @@ Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top", "name": "top", "type": "topLevel", "location": "eastus", @@ -1188,29 +1188,29 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_delete +### Azure_ResourceManager_Resources_TopLevel_delete - Endpoint: `delete https://management.azure.com` Resource DELETE operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top Expected query parameter: api-version=2023-12-01-preview ```` Expected response status code: 204 -### Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_get +### Azure_ResourceManager_Resources_TopLevel_get - Endpoint: `get https://management.azure.com` Resource GET operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top", "name": "top", "type": "topLevel", "location": "eastus", @@ -1229,12 +1229,12 @@ Expected response body: } ```` -### Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_listByResourceGroup +### Azure_ResourceManager_Resources_TopLevel_listByResourceGroup - Endpoint: `get https://management.azure.com` Resource LIST by resource group operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources Expected query parameter: api-version=2023-12-01-preview Expected response body: @@ -1242,7 +1242,7 @@ Expected response body: ```json { "value": [{ - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top", "name": "top", "type": "topLevel", "location": "eastus", @@ -1262,12 +1262,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_listBySubscription +### Azure_ResourceManager_Resources_TopLevel_listBySubscription - Endpoint: `get https://management.azure.com` Resource LIST by subscription operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources Expected query parameter: api-version=2023-12-01-preview Expected response body: @@ -1275,7 +1275,7 @@ Expected response body: ```json { "value": [{ - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top", "name": "top", "type": "topLevel", "location": "eastus", @@ -1295,12 +1295,12 @@ Expected response body: } ``` -### Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_update +### Azure_ResourceManager_Resources_TopLevel_update - Endpoint: `patch https://management.azure.com` Resource PATCH operation. -Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top +Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top Expected query parameter: api-version=2023-12-01-preview Expected request body: @@ -1316,7 +1316,7 @@ Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top", "name": "top", "type": "topLevel", "location": "eastus", diff --git a/packages/azure-http-specs/specs/azure/resource-manager/common-properties/main.tsp b/packages/azure-http-specs/specs/azure/resource-manager/common-properties/main.tsp new file mode 100644 index 000000000..e925ac2c9 --- /dev/null +++ b/packages/azure-http-specs/specs/azure/resource-manager/common-properties/main.tsp @@ -0,0 +1,27 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./managed-identity.tsp"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.OpenAPI; + +@armProviderNamespace +@service +@versioned(Versions) +@doc("Arm Managed Identity Provider management API.") +namespace Azure.ResourceManager.CommonProperties; + +@doc("Azure API versions.") +enum Versions { + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @doc("Preview API version 2023-12-01-preview.") + v2023_12_01_preview: "2023-12-01-preview", +} diff --git a/packages/azure-http-specs/specs/azure/resource-manager/models/common-types/managed-identity/main.tsp b/packages/azure-http-specs/specs/azure/resource-manager/common-properties/managed-identity.tsp similarity index 73% rename from packages/azure-http-specs/specs/azure/resource-manager/models/common-types/managed-identity/main.tsp rename to packages/azure-http-specs/specs/azure/resource-manager/common-properties/managed-identity.tsp index 4126caefa..f638bfda3 100644 --- a/packages/azure-http-specs/specs/azure/resource-manager/models/common-types/managed-identity/main.tsp +++ b/packages/azure-http-specs/specs/azure/resource-manager/common-properties/managed-identity.tsp @@ -1,10 +1,9 @@ -import "@typespec/spector"; import "@typespec/http"; import "@typespec/rest"; import "@typespec/versioning"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; -import "@azure-tools/typespec-client-generator-core"; +import "@typespec/spector"; using TypeSpec.Http; using TypeSpec.Rest; @@ -14,22 +13,11 @@ using Azure.ResourceManager; using TypeSpec.OpenAPI; using Spector; -@armProviderNamespace -@service -@versioned(Versions) -@doc("Arm Managed Identity Provider management API.") -namespace Azure.ResourceManager.Models.CommonTypes.ManagedIdentity; - -@doc("Azure API versions.") -enum Versions { - @useDependency(Azure.Core.Versions.v1_0_Preview_2) - @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) - @doc("Preview API version 2023-12-01-preview.") - v2023_12_01_preview: "2023-12-01-preview", -} +namespace Azure.ResourceManager.CommonProperties; @resource("managedIdentityTrackedResources") -model ManagedIdentityTrackedResource is TrackedResource { +model ManagedIdentityTrackedResource + is Azure.ResourceManager.TrackedResource { @key("managedIdentityTrackedResourceName") @path @segment("managedIdentityTrackedResources") @@ -48,17 +36,17 @@ model ManagedIdentityTrackedResourceProperties { } @armResourceOperations -interface ManagedIdentityTrackedResources { +interface ManagedIdentity { @scenario @scenarioDoc(""" Resource GET operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { - "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", + "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", "location": "eastus", "tags": { "tagKey1": "tagValue1" @@ -79,7 +67,7 @@ interface ManagedIdentityTrackedResources { @scenario @scenarioDoc(""" Resource PUT operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", Expected query parameter: api-version=2023-12-01-preview Expected request body: ```json @@ -97,7 +85,7 @@ interface ManagedIdentityTrackedResources { Expected response body: ```json { - "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", + "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", "location": "eastus", "tags": { "tagKey1": "tagValue1" @@ -118,7 +106,7 @@ interface ManagedIdentityTrackedResources { @scenario @scenarioDoc(""" Resource PATCH operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", Expected query parameter: api-version=2023-12-01-preview Expected request body: ```json @@ -134,7 +122,7 @@ interface ManagedIdentityTrackedResources { Expected response body: ```json { - "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity", + "id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity", "location": "eastus", "tags": { "tagKey1": "tagValue1" diff --git a/packages/azure-http-specs/specs/azure/resource-manager/models/common-types/managed-identity/mockapi.ts b/packages/azure-http-specs/specs/azure/resource-manager/common-properties/mockapi.ts similarity index 69% rename from packages/azure-http-specs/specs/azure/resource-manager/models/common-types/managed-identity/mockapi.ts rename to packages/azure-http-specs/specs/azure/resource-manager/common-properties/mockapi.ts index 243798f41..4ecb4aac9 100644 --- a/packages/azure-http-specs/specs/azure/resource-manager/models/common-types/managed-identity/mockapi.ts +++ b/packages/azure-http-specs/specs/azure/resource-manager/common-properties/mockapi.ts @@ -11,7 +11,7 @@ const RESOURCE_GROUP_EXPECTED = "test-rg"; const IDENTITY_TYPE_SYSTEM_ASSIGNED_EXPECTED = "SystemAssigned"; const IDENTITY_TYPE_SYSTEM_USER_ASSIGNED_EXPECTED = "SystemAssigned,UserAssigned"; const validSystemAssignedManagedIdentityResource = { - id: `/subscriptions/${SUBSCRIPTION_ID_EXPECTED}/resourceGroups/${RESOURCE_GROUP_EXPECTED}/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity`, + id: `/subscriptions/${SUBSCRIPTION_ID_EXPECTED}/resourceGroups/${RESOURCE_GROUP_EXPECTED}/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity`, location: `${LOCATION_REGION_EXPECTED}`, tags: { tagKey1: "tagValue1", @@ -27,7 +27,7 @@ const validSystemAssignedManagedIdentityResource = { }; const validUserAssignedAndSystemAssignedManagedIdentityResource = { - id: `/subscriptions/${SUBSCRIPTION_ID_EXPECTED}/resourceGroups/${RESOURCE_GROUP_EXPECTED}/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/identity`, + id: `/subscriptions/${SUBSCRIPTION_ID_EXPECTED}/resourceGroups/${RESOURCE_GROUP_EXPECTED}/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/identity`, location: `${LOCATION_REGION_EXPECTED}`, tags: { tagKey1: "tagValue1", @@ -62,28 +62,27 @@ const updateExpectedIdentity = { }; // managed identity tracked resource -Scenarios.Azure_ResourceManager_Models_CommonTypes_ManagedIdentity_ManagedIdentityTrackedResources_get = - passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/:managedIdentityResourceName", - method: "get", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - managedIdentityResourceName: "identity", - "api-version": "2023-12-01-preview", - }, +Scenarios.Azure_ResourceManager_CommonProperties_ManagedIdentity_get = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/:managedIdentityResourceName", + method: "get", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + managedIdentityResourceName: "identity", + "api-version": "2023-12-01-preview", }, - response: { - status: 200, - body: json(validSystemAssignedManagedIdentityResource), - }, - kind: "MockApiDefinition", - }); + }, + response: { + status: 200, + body: json(validSystemAssignedManagedIdentityResource), + }, + kind: "MockApiDefinition", +}); -Scenarios.Azure_ResourceManager_Models_CommonTypes_ManagedIdentity_ManagedIdentityTrackedResources_createWithSystemAssigned = +Scenarios.Azure_ResourceManager_CommonProperties_ManagedIdentity_createWithSystemAssigned = passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/:managedIdentityResourceName", + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/:managedIdentityResourceName", method: "put", request: { body: { @@ -103,9 +102,9 @@ Scenarios.Azure_ResourceManager_Models_CommonTypes_ManagedIdentity_ManagedIdenti kind: "MockApiDefinition", }); -Scenarios.Azure_ResourceManager_Models_CommonTypes_ManagedIdentity_ManagedIdentityTrackedResources_updateWithUserAssignedAndSystemAssigned = +Scenarios.Azure_ResourceManager_CommonProperties_ManagedIdentity_updateWithUserAssignedAndSystemAssigned = passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.CommonTypes.ManagedIdentity/managedIdentityTrackedResources/:managedIdentityResourceName", + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.CommonProperties/managedIdentityTrackedResources/:managedIdentityResourceName", method: "patch", request: { body: { diff --git a/packages/azure-http-specs/specs/azure/resource-manager/models/resources/mockapi.ts b/packages/azure-http-specs/specs/azure/resource-manager/models/resources/mockapi.ts deleted file mode 100644 index dd8274f15..000000000 --- a/packages/azure-http-specs/specs/azure/resource-manager/models/resources/mockapi.ts +++ /dev/null @@ -1,428 +0,0 @@ -import { json, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api"; - -export const Scenarios: Record = {}; - -const SUBSCRIPTION_ID_EXPECTED = "00000000-0000-0000-0000-000000000000"; -const RESOURCE_GROUP_EXPECTED = "test-rg"; -const validTopLevelResource = { - id: `/subscriptions/${SUBSCRIPTION_ID_EXPECTED}/resourceGroups/${RESOURCE_GROUP_EXPECTED}/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top`, - name: "top", - type: "Azure.ResourceManager.Models.Resources/topLevelTrackedResources", - location: "eastus", - properties: { - provisioningState: "Succeeded", - description: "valid", - }, - systemData: { - createdBy: "AzureSDK", - createdByType: "User", - createdAt: "2024-10-04T00:56:07.442Z", - lastModifiedBy: "AzureSDK", - lastModifiedAt: "2024-10-04T00:56:07.442Z", - lastModifiedByType: "User", - }, -}; - -const validNestedResource = { - id: `/subscriptions/${SUBSCRIPTION_ID_EXPECTED}/resourceGroups/${RESOURCE_GROUP_EXPECTED}/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested`, - name: "nested", - type: "Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources", - properties: { - provisioningState: "Succeeded", - description: "valid", - }, - systemData: { - createdBy: "AzureSDK", - createdByType: "User", - createdAt: "2024-10-04T00:56:07.442Z", - lastModifiedBy: "AzureSDK", - lastModifiedAt: "2024-10-04T00:56:07.442Z", - lastModifiedByType: "User", - }, -}; - -const validSingletonResource = { - id: `/subscriptions/${SUBSCRIPTION_ID_EXPECTED}/resourceGroups/${RESOURCE_GROUP_EXPECTED}/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default`, - name: "default", - type: "Azure.ResourceManager.Models.Resources/singletonTrackedResources", - location: "eastus", - properties: { - provisioningState: "Succeeded", - description: "valid", - }, - systemData: { - createdBy: "AzureSDK", - createdByType: "User", - createdAt: "2024-10-04T00:56:07.442Z", - lastModifiedBy: "AzureSDK", - lastModifiedAt: "2024-10-04T00:56:07.442Z", - lastModifiedByType: "User", - }, -}; - -// singleton tracked resource -Scenarios.Azure_ResourceManager_Models_Resources_SingletonTrackedResources_getByResourceGroup = - passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", - method: "get", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - "api-version": "2023-12-01-preview", - }, - }, - response: { - status: 200, - body: json(validSingletonResource), - }, - kind: "MockApiDefinition", - }); - -Scenarios.Azure_ResourceManager_Models_Resources_SingletonTrackedResources_createOrUpdate = - passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", - method: "put", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - "api-version": "2023-12-01-preview", - }, - body: { - location: "eastus", - properties: { - description: "valid", - }, - }, - }, - response: { - status: 200, - body: json(validSingletonResource), - }, - kind: "MockApiDefinition", - }); - -Scenarios.Azure_ResourceManager_Models_Resources_SingletonTrackedResources_update = passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", - method: "patch", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - "api-version": "2023-12-01-preview", - }, - body: { - location: "eastus2", - properties: { - description: "valid2", - }, - }, - headers: { - "Content-Type": "application/merge-patch+json", - }, - }, - response: { - status: 200, - body: json({ - ...validSingletonResource, - location: "eastus2", - properties: { - provisioningState: "Succeeded", - description: "valid2", - }, - }), - }, - kind: "MockApiDefinition", -}); - -Scenarios.Azure_ResourceManager_Models_Resources_SingletonTrackedResources_listByResourceGroup = - passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources", - method: "get", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - "api-version": "2023-12-01-preview", - }, - }, - response: { - status: 200, - body: json({ - value: [validSingletonResource], - }), - }, - kind: "MockApiDefinition", - }); - -Scenarios.Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_actionSync = - passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/:topLevelResourceName/actionSync", - method: "post", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - topLevelResourceName: "top", - "api-version": "2023-12-01-preview", - }, - body: { - message: "Resource action at top level.", - urgent: true, - }, - }, - response: { - status: 204, - }, - kind: "MockApiDefinition", - }); - -// top level tracked resource -Scenarios.Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_get = passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/:topLevelResourceName", - method: "get", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - topLevelResourceName: "top", - "api-version": "2023-12-01-preview", - }, - }, - response: { - status: 200, - body: json(validTopLevelResource), - }, - kind: "MockApiDefinition", -}); - -Scenarios.Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_createOrReplace = - passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/:topLevelResourceName", - method: "put", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - topLevelResourceName: "top", - "api-version": "2023-12-01-preview", - }, - body: { - location: "eastus", - properties: { - description: "valid", - }, - }, - }, - response: { - status: 200, - body: json(validTopLevelResource), - }, - kind: "MockApiDefinition", - }); - -Scenarios.Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_update = passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/:topLevelResourceName", - method: "patch", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - topLevelResourceName: "top", - "api-version": "2023-12-01-preview", - }, - body: { - properties: { - description: "valid2", - }, - }, - headers: { - "Content-Type": "application/merge-patch+json", - }, - }, - response: { - status: 200, - body: json({ - ...validTopLevelResource, - properties: { - provisioningState: "Succeeded", - description: "valid2", - }, - }), - }, - kind: "MockApiDefinition", -}); - -Scenarios.Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_delete = passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/:topLevelResourceName", - method: "delete", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - topLevelResourceName: "top", - "api-version": "2023-12-01-preview", - }, - }, - response: { - status: 204, - }, - kind: "MockApiDefinition", -}); - -Scenarios.Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_listByResourceGroup = - passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources", - method: "get", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - "api-version": "2023-12-01-preview", - }, - }, - response: { - status: 200, - body: json({ - value: [validTopLevelResource], - }), - }, - kind: "MockApiDefinition", - }); - -Scenarios.Azure_ResourceManager_Models_Resources_TopLevelTrackedResources_listBySubscription = - passOnSuccess({ - uri: "/subscriptions/:subscriptionId/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources", - method: "get", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - "api-version": "2023-12-01-preview", - }, - }, - response: { - status: 200, - body: json({ - value: [validTopLevelResource], - }), - }, - kind: "MockApiDefinition", - }); - -// nested proxy resource -Scenarios.Azure_ResourceManager_Models_Resources_NestedProxyResources_get = passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/:topLevelResourceName/nestedProxyResources/:nestedResourceName", - method: "get", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - topLevelResourceName: "top", - nestedResourceName: "nested", - "api-version": "2023-12-01-preview", - }, - }, - response: { - status: 200, - body: json(validNestedResource), - }, - kind: "MockApiDefinition", -}); - -Scenarios.Azure_ResourceManager_Models_Resources_NestedProxyResources_createOrReplace = - passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/:topLevelResourceName/nestedProxyResources/:nestedResourceName", - method: "put", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - topLevelResourceName: "top", - nestedResourceName: "nested", - "api-version": "2023-12-01-preview", - }, - body: { - properties: { - description: "valid", - }, - }, - }, - response: { - status: 200, - body: json(validNestedResource), - }, - kind: "MockApiDefinition", - }); - -Scenarios.Azure_ResourceManager_Models_Resources_NestedProxyResources_update = passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/:topLevelResourceName/nestedProxyResources/:nestedResourceName", - method: "patch", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - topLevelResourceName: "top", - nestedResourceName: "nested", - "api-version": "2023-12-01-preview", - }, - body: { - properties: { - description: "valid2", - }, - }, - headers: { - "Content-Type": "application/merge-patch+json", - }, - }, - response: { - status: 200, - body: json({ - ...validNestedResource, - properties: { - provisioningState: "Succeeded", - description: "valid2", - }, - }), - }, - kind: "MockApiDefinition", -}); - -Scenarios.Azure_ResourceManager_Models_Resources_NestedProxyResources_delete = passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/:topLevelResourceName/nestedProxyResources/:nestedResourceName", - method: "delete", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - topLevelResourceName: "top", - nestedResourceName: "nested", - "api-version": "2023-12-01-preview", - }, - }, - response: { - status: 204, - }, - kind: "MockApiDefinition", -}); - -Scenarios.Azure_ResourceManager_Models_Resources_NestedProxyResources_listByTopLevelTrackedResource = - passOnSuccess({ - uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/:topLevelResourceName/nestedProxyResources", - method: "get", - request: { - params: { - subscriptionId: SUBSCRIPTION_ID_EXPECTED, - resourceGroup: RESOURCE_GROUP_EXPECTED, - topLevelResourceName: "top", - "api-version": "2023-12-01-preview", - }, - }, - response: { - status: 200, - body: json({ - value: [validNestedResource], - }), - }, - kind: "MockApiDefinition", - }); diff --git a/packages/azure-http-specs/specs/azure/resource-manager/models/resources/main.tsp b/packages/azure-http-specs/specs/azure/resource-manager/resources/main.tsp similarity index 91% rename from packages/azure-http-specs/specs/azure/resource-manager/models/resources/main.tsp rename to packages/azure-http-specs/specs/azure/resource-manager/resources/main.tsp index 3b2db668f..6cfddb625 100644 --- a/packages/azure-http-specs/specs/azure/resource-manager/models/resources/main.tsp +++ b/packages/azure-http-specs/specs/azure/resource-manager/resources/main.tsp @@ -1,4 +1,3 @@ -import "@typespec/spector"; import "@typespec/http"; import "@typespec/rest"; import "@typespec/versioning"; @@ -15,13 +14,12 @@ using TypeSpec.Versioning; using Azure.Core; using Azure.ResourceManager; using TypeSpec.OpenAPI; -using Spector; @armProviderNamespace @service @versioned(Versions) @doc("Arm Resource Provider management API.") -namespace Azure.ResourceManager.Models.Resources; +namespace Azure.ResourceManager.Resources; @doc("Azure API versions.") enum Versions { diff --git a/packages/azure-http-specs/specs/azure/resource-manager/resources/mockapi.ts b/packages/azure-http-specs/specs/azure/resource-manager/resources/mockapi.ts new file mode 100644 index 000000000..c91b0817b --- /dev/null +++ b/packages/azure-http-specs/specs/azure/resource-manager/resources/mockapi.ts @@ -0,0 +1,419 @@ +import { json, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api"; + +export const Scenarios: Record = {}; + +const SUBSCRIPTION_ID_EXPECTED = "00000000-0000-0000-0000-000000000000"; +const RESOURCE_GROUP_EXPECTED = "test-rg"; +const validTopLevelResource = { + id: `/subscriptions/${SUBSCRIPTION_ID_EXPECTED}/resourceGroups/${RESOURCE_GROUP_EXPECTED}/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top`, + name: "top", + type: "Azure.ResourceManager.Resources/topLevelTrackedResources", + location: "eastus", + properties: { + provisioningState: "Succeeded", + description: "valid", + }, + systemData: { + createdBy: "AzureSDK", + createdByType: "User", + createdAt: "2024-10-04T00:56:07.442Z", + lastModifiedBy: "AzureSDK", + lastModifiedAt: "2024-10-04T00:56:07.442Z", + lastModifiedByType: "User", + }, +}; + +const validNestedResource = { + id: `/subscriptions/${SUBSCRIPTION_ID_EXPECTED}/resourceGroups/${RESOURCE_GROUP_EXPECTED}/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested`, + name: "nested", + type: "Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources", + properties: { + provisioningState: "Succeeded", + description: "valid", + }, + systemData: { + createdBy: "AzureSDK", + createdByType: "User", + createdAt: "2024-10-04T00:56:07.442Z", + lastModifiedBy: "AzureSDK", + lastModifiedAt: "2024-10-04T00:56:07.442Z", + lastModifiedByType: "User", + }, +}; + +const validSingletonResource = { + id: `/subscriptions/${SUBSCRIPTION_ID_EXPECTED}/resourceGroups/${RESOURCE_GROUP_EXPECTED}/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default`, + name: "default", + type: "Azure.ResourceManager.Resources/singletonTrackedResources", + location: "eastus", + properties: { + provisioningState: "Succeeded", + description: "valid", + }, + systemData: { + createdBy: "AzureSDK", + createdByType: "User", + createdAt: "2024-10-04T00:56:07.442Z", + lastModifiedBy: "AzureSDK", + lastModifiedAt: "2024-10-04T00:56:07.442Z", + lastModifiedByType: "User", + }, +}; + +// singleton tracked resource +Scenarios.Azure_ResourceManager_Resources_Singleton_getByResourceGroup = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", + method: "get", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + "api-version": "2023-12-01-preview", + }, + }, + response: { + status: 200, + body: json(validSingletonResource), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_Singleton_createOrUpdate = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", + method: "put", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + "api-version": "2023-12-01-preview", + }, + body: { + location: "eastus", + properties: { + description: "valid", + }, + }, + }, + response: { + status: 200, + body: json(validSingletonResource), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_Singleton_update = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", + method: "patch", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + "api-version": "2023-12-01-preview", + }, + body: { + location: "eastus", + properties: { + description: "valid2", + }, + }, + headers: { + "Content-Type": "application/merge-patch+json", + }, + }, + response: { + status: 200, + body: json({ + ...validSingletonResource, + location: "eastus", + properties: { + provisioningState: "Succeeded", + description: "valid2", + }, + }), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_Singleton_listByResourceGroup = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/singletonTrackedResources", + method: "get", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + "api-version": "2023-12-01-preview", + }, + }, + response: { + status: 200, + body: json({ + value: [validSingletonResource], + }), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_TopLevel_actionSync = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/:topLevelResourceName/actionSync", + method: "post", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + topLevelResourceName: "top", + "api-version": "2023-12-01-preview", + }, + body: { + message: "Resource action at top level.", + urgent: true, + }, + }, + response: { + status: 204, + }, + kind: "MockApiDefinition", +}); + +// top level tracked resource +Scenarios.Azure_ResourceManager_Resources_TopLevel_get = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/:topLevelResourceName", + method: "get", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + topLevelResourceName: "top", + "api-version": "2023-12-01-preview", + }, + }, + response: { + status: 200, + body: json(validTopLevelResource), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_TopLevel_createOrReplace = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/:topLevelResourceName", + method: "put", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + topLevelResourceName: "top", + "api-version": "2023-12-01-preview", + }, + body: { + location: "eastus", + properties: { + description: "valid", + }, + }, + }, + response: { + status: 200, + body: json(validTopLevelResource), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_TopLevel_update = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/:topLevelResourceName", + method: "patch", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + topLevelResourceName: "top", + "api-version": "2023-12-01-preview", + }, + body: { + properties: { + description: "valid2", + }, + }, + headers: { + "Content-Type": "application/merge-patch+json", + }, + }, + response: { + status: 200, + body: json({ + ...validTopLevelResource, + properties: { + provisioningState: "Succeeded", + description: "valid2", + }, + }), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_TopLevel_delete = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/:topLevelResourceName", + method: "delete", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + topLevelResourceName: "top", + "api-version": "2023-12-01-preview", + }, + }, + response: { + status: 204, + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_TopLevel_listByResourceGroup = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources", + method: "get", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + "api-version": "2023-12-01-preview", + }, + }, + response: { + status: 200, + body: json({ + value: [validTopLevelResource], + }), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_TopLevel_listBySubscription = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/providers/Azure.ResourceManager.Resources/topLevelTrackedResources", + method: "get", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + "api-version": "2023-12-01-preview", + }, + }, + response: { + status: 200, + body: json({ + value: [validTopLevelResource], + }), + }, + kind: "MockApiDefinition", +}); + +// nested proxy resource +Scenarios.Azure_ResourceManager_Resources_Nested_get = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/:topLevelResourceName/nestedProxyResources/:nestedResourceName", + method: "get", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + topLevelResourceName: "top", + nestedResourceName: "nested", + "api-version": "2023-12-01-preview", + }, + }, + response: { + status: 200, + body: json(validNestedResource), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_Nested_createOrReplace = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/:topLevelResourceName/nestedProxyResources/:nestedResourceName", + method: "put", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + topLevelResourceName: "top", + nestedResourceName: "nested", + "api-version": "2023-12-01-preview", + }, + body: { + properties: { + description: "valid", + }, + }, + }, + response: { + status: 200, + body: json(validNestedResource), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_Nested_update = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/:topLevelResourceName/nestedProxyResources/:nestedResourceName", + method: "patch", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + topLevelResourceName: "top", + nestedResourceName: "nested", + "api-version": "2023-12-01-preview", + }, + body: { + properties: { + description: "valid2", + }, + }, + headers: { + "Content-Type": "application/merge-patch+json", + }, + }, + response: { + status: 200, + body: json({ + ...validNestedResource, + properties: { + provisioningState: "Succeeded", + description: "valid2", + }, + }), + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_Nested_delete = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/:topLevelResourceName/nestedProxyResources/:nestedResourceName", + method: "delete", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + topLevelResourceName: "top", + nestedResourceName: "nested", + "api-version": "2023-12-01-preview", + }, + }, + response: { + status: 204, + }, + kind: "MockApiDefinition", +}); + +Scenarios.Azure_ResourceManager_Resources_Nested_listByTopLevelTrackedResource = passOnSuccess({ + uri: "/subscriptions/:subscriptionId/resourceGroups/:resourceGroup/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/:topLevelResourceName/nestedProxyResources", + method: "get", + request: { + params: { + subscriptionId: SUBSCRIPTION_ID_EXPECTED, + resourceGroup: RESOURCE_GROUP_EXPECTED, + topLevelResourceName: "top", + "api-version": "2023-12-01-preview", + }, + }, + response: { + status: 200, + body: json({ + value: [validNestedResource], + }), + }, + kind: "MockApiDefinition", +}); diff --git a/packages/azure-http-specs/specs/azure/resource-manager/models/resources/nested.tsp b/packages/azure-http-specs/specs/azure/resource-manager/resources/nested.tsp similarity index 78% rename from packages/azure-http-specs/specs/azure/resource-manager/models/resources/nested.tsp rename to packages/azure-http-specs/specs/azure/resource-manager/resources/nested.tsp index 53ae4039b..21e50df21 100644 --- a/packages/azure-http-specs/specs/azure/resource-manager/models/resources/nested.tsp +++ b/packages/azure-http-specs/specs/azure/resource-manager/resources/nested.tsp @@ -2,6 +2,7 @@ import "@typespec/http"; import "@typespec/rest"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/spector"; using TypeSpec.Http; using TypeSpec.Rest; @@ -10,7 +11,7 @@ using Azure.ResourceManager; using TypeSpec.OpenAPI; using Spector; -namespace Azure.ResourceManager.Models.Resources; +namespace Azure.ResourceManager.Resources; @doc("Nested child of Top Level Tracked Resource.") @parentResource(TopLevelTrackedResource) @@ -35,17 +36,17 @@ model NestedProxyResourceProperties { } @armResourceOperations -interface NestedProxyResources { +interface Nested { @scenario @scenarioDoc(""" Resource GET operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", "name": "nested", "type": "nested", "properties":{ @@ -68,7 +69,7 @@ interface NestedProxyResources { @scenario @scenarioDoc(""" Resource PUT operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested Expected query parameter: api-version=2023-12-01-preview Expected request body: ```json @@ -81,7 +82,7 @@ interface NestedProxyResources { Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", "name": "nested", "type": "nested", "properties":{ @@ -104,7 +105,7 @@ interface NestedProxyResources { @scenario @scenarioDoc(""" Resource PATCH operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested Expected query parameter: api-version=2023-12-01-preview Expected request body: ```json @@ -117,7 +118,7 @@ interface NestedProxyResources { Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", "name": "nested", "type": "nested", "properties":{ @@ -140,7 +141,7 @@ interface NestedProxyResources { @scenario @scenarioDoc(""" Resource DELETE operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested Expected query parameter: api-version=2023-12-01-preview Expected response status code: 204 """) @@ -149,14 +150,14 @@ interface NestedProxyResources { @scenario @scenarioDoc(""" Resource LIST by parent resource operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { "value": [{ - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/nestedProxyResources/nested", "name": "nested", "type": "nested", "properties":{ diff --git a/packages/azure-http-specs/specs/azure/resource-manager/models/resources/singleton.tsp b/packages/azure-http-specs/specs/azure/resource-manager/resources/singleton.tsp similarity index 75% rename from packages/azure-http-specs/specs/azure/resource-manager/models/resources/singleton.tsp rename to packages/azure-http-specs/specs/azure/resource-manager/resources/singleton.tsp index 974fc6ecf..2e221a0dd 100644 --- a/packages/azure-http-specs/specs/azure/resource-manager/models/resources/singleton.tsp +++ b/packages/azure-http-specs/specs/azure/resource-manager/resources/singleton.tsp @@ -2,6 +2,7 @@ import "@typespec/http"; import "@typespec/rest"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/spector"; using TypeSpec.Http; using TypeSpec.Rest; @@ -10,7 +11,7 @@ using Azure.ResourceManager; using TypeSpec.OpenAPI; using Spector; -namespace Azure.ResourceManager.Models.Resources; +namespace Azure.ResourceManager.Resources; @singleton("default") model SingletonTrackedResource is TrackedResource { @@ -28,19 +29,19 @@ model SingletonTrackedResourceProperties { } @armResourceOperations -interface SingletonTrackedResources { +interface Singleton { @scenario @scenarioDoc(""" Resource GET operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", "name": "default", - "type": "Azure.ResourceManager.Models.Resources/singletonTrackedResources", + "type": "Azure.ResourceManager.Resources/singletonTrackedResources", "location": "eastus", "properties":{ "description": "valid", @@ -62,7 +63,7 @@ interface SingletonTrackedResources { @scenario @scenarioDoc(""" Resource PUT operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default Expected query parameter: api-version=2023-12-01-preview Expected request body: ```json @@ -76,9 +77,9 @@ interface SingletonTrackedResources { Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", "name": "default", - "type": "Azure.ResourceManager.Models.Resources/singletonTrackedResources", + "type": "Azure.ResourceManager.Resources/singletonTrackedResources", "location": "eastus", "properties": { "description": "valid", @@ -100,12 +101,12 @@ interface SingletonTrackedResources { @scenario @scenarioDoc(""" Resource PATCH operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default Expected query parameter: api-version=2023-12-01-preview Expected request body: ```json { - "location": "eastus2", + "location": "eastus", "properties": { "description": "valid2" } @@ -114,10 +115,10 @@ interface SingletonTrackedResources { Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", "name": "default", - "type": "Azure.ResourceManager.Models.Resources/singletonTrackedResources", - "location": "eastus2", + "type": "Azure.ResourceManager.Resources/singletonTrackedResources", + "location": "eastus", "properties":{ "description": "valid2", "provisioningState": "Succeeded" @@ -138,16 +139,16 @@ interface SingletonTrackedResources { @scenario @scenarioDoc(""" Resource LIST by resource group operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { "value": [{ - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/singletonTrackedResources/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/singletonTrackedResources/default", "name": "default", - "type": "Azure.ResourceManager.Models.Resources/singletonTrackedResources", + "type": "Azure.ResourceManager.Resources/singletonTrackedResources", "location": "eastus", "properties":{ "description": "valid", diff --git a/packages/azure-http-specs/specs/azure/resource-manager/models/resources/toplevel.tsp b/packages/azure-http-specs/specs/azure/resource-manager/resources/toplevel.tsp similarity index 83% rename from packages/azure-http-specs/specs/azure/resource-manager/models/resources/toplevel.tsp rename to packages/azure-http-specs/specs/azure/resource-manager/resources/toplevel.tsp index ef00a589e..2549bd364 100644 --- a/packages/azure-http-specs/specs/azure/resource-manager/models/resources/toplevel.tsp +++ b/packages/azure-http-specs/specs/azure/resource-manager/resources/toplevel.tsp @@ -2,6 +2,7 @@ import "@typespec/http"; import "@typespec/rest"; import "@azure-tools/typespec-azure-core"; import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/spector"; using TypeSpec.Http; using TypeSpec.Rest; @@ -10,7 +11,7 @@ using Azure.ResourceManager; using TypeSpec.OpenAPI; using Spector; -namespace Azure.ResourceManager.Models.Resources; +namespace Azure.ResourceManager.Resources; @resource("topLevelTrackedResources") model TopLevelTrackedResource is TrackedResource { @@ -42,17 +43,17 @@ model NotificationDetails { } @armResourceOperations -interface TopLevelTrackedResources { +interface TopLevel { @scenario @scenarioDoc(""" Resource GET operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top", "name": "top", "type": "topLevel", "location": "eastus", @@ -76,7 +77,7 @@ interface TopLevelTrackedResources { @scenario @scenarioDoc(""" Resource PUT operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top Expected query parameter: api-version=2023-12-01-preview Expected request body: ```json @@ -90,7 +91,7 @@ interface TopLevelTrackedResources { Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top", "name": "top", "type": "topLevel", "location": "eastus", @@ -114,7 +115,7 @@ interface TopLevelTrackedResources { @scenario @scenarioDoc(""" Resource PATCH operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top Expected query parameter: api-version=2023-12-01-preview Expected request body: ```json @@ -127,7 +128,7 @@ interface TopLevelTrackedResources { Expected response body: ```json { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top", "name": "top", "type": "topLevel", "location": "eastus", @@ -151,7 +152,7 @@ interface TopLevelTrackedResources { @scenario @scenarioDoc(""" Resource DELETE operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top Expected query parameter: api-version=2023-12-01-preview ``` Expected response status code: 204 @@ -161,14 +162,14 @@ interface TopLevelTrackedResources { @scenario @scenarioDoc(""" Resource LIST by resource group operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { "value": [{ - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top", "name": "top", "type": "topLevel", "location": "eastus", @@ -193,14 +194,14 @@ interface TopLevelTrackedResources { @scenario @scenarioDoc(""" Resource LIST by subscription operation. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources Expected query parameter: api-version=2023-12-01-preview Expected response body: ```json { "value": [{ - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top", "name": "top", "type": "topLevel", "location": "eastus", @@ -225,7 +226,7 @@ interface TopLevelTrackedResources { @scenario @scenarioDoc(""" Resource sync action. - Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Models.Resources/topLevelTrackedResources/top/actionSync + Expected path: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/test-rg/providers/Azure.ResourceManager.Resources/topLevelTrackedResources/top/actionSync Expected query parameter: api-version=2023-12-01-preview Expected request body: ```json