From d2c4a7f5b0cb5f09e9a4683e54e09dbaf2f85ea0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 6 Nov 2025 18:19:32 +0000 Subject: [PATCH 1/2] Initial plan From b33d6cbfe0fb9a692b11d93b2be6aaa565987054 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 6 Nov 2025 18:25:43 +0000 Subject: [PATCH 2/2] Add ComputeLimit TypeSpec project from release branch Co-authored-by: azure-sdk <53356347+azure-sdk@users.noreply.github.com> --- .../ComputeLimit/GuestSubscription.tsp | 49 ++ .../ComputeLimit/SharedLimit.tsp | 70 ++ .../2025-08-15/GuestSubscriptions_Create.json | 35 + .../2025-08-15/GuestSubscriptions_Delete.json | 14 + .../2025-08-15/GuestSubscriptions_Get.json | 22 + .../2025-08-15/GuestSubscriptions_List.json | 33 + .../examples/2025-08-15/Operations_List.json | 96 +++ .../2025-08-15/SharedLimits_Create.json | 47 ++ .../2025-08-15/SharedLimits_Delete.json | 14 + .../examples/2025-08-15/SharedLimits_Get.json | 28 + .../2025-08-15/SharedLimits_List.json | 45 ++ .../ComputeLimit/main.tsp | 24 + .../ComputeLimit/readme.md | 38 ++ .../stable/2025-08-15/ComputeLimit.json | 643 ++++++++++++++++++ .../examples/GuestSubscriptions_Create.json | 35 + .../examples/GuestSubscriptions_Delete.json | 14 + .../examples/GuestSubscriptions_Get.json | 22 + .../examples/GuestSubscriptions_List.json | 33 + .../2025-08-15/examples/Operations_List.json | 96 +++ .../examples/SharedLimits_Create.json | 47 ++ .../examples/SharedLimits_Delete.json | 14 + .../2025-08-15/examples/SharedLimits_Get.json | 28 + .../examples/SharedLimits_List.json | 45 ++ .../ComputeLimit/tspconfig.yaml | 57 ++ 24 files changed, 1549 insertions(+) create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/GuestSubscription.tsp create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/SharedLimit.tsp create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Create.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Delete.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Get.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_List.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/Operations_List.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Create.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Delete.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Get.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_List.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/main.tsp create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/readme.md create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/ComputeLimit.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Create.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Delete.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Get.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_List.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/Operations_List.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Create.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Delete.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Get.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_List.json create mode 100644 specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/GuestSubscription.tsp b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/GuestSubscription.tsp new file mode 100644 index 000000000000..6f9a421aa838 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/GuestSubscription.tsp @@ -0,0 +1,49 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using Azure.ResourceManager; +using TypeSpec.Rest; + +namespace Microsoft.ComputeLimit; + +/** Guest subscription that consumes shared compute limits. */ +@parentResource(SubscriptionLocationResource) +model GuestSubscription is ProxyResource { + ...ResourceNameParameter< + Resource = GuestSubscription, + KeyName = "guestSubscriptionId", + SegmentName = "guestSubscriptions", + NamePattern = "^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$" + >; +} + +/** Properties for guest subscription. */ +model GuestSubscriptionProperties { + ...DefaultProvisioningStateProperty; +} + +/** Location-scoped operations for guest subscriptions. */ +@armResourceOperations +interface GuestSubscriptions { + /** + * Gets the properties of a guest subscription. + */ + get is ArmResourceRead; + + /** + * Adds a subscription as a guest to consume the compute limits shared by the host subscription. + */ + create is ArmResourceCreateOrReplaceSync; + + /** + * Deletes a subscription as a guest to stop consuming the compute limits shared by the host subscription. + */ + delete is ArmResourceDeleteSync; + + /** + * Lists all guest subscriptions in a location. + */ + list is ArmResourceListAtScope; +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/SharedLimit.tsp b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/SharedLimit.tsp new file mode 100644 index 000000000000..ab8b27459165 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/SharedLimit.tsp @@ -0,0 +1,70 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using Azure.ResourceManager; +using TypeSpec.Rest; + +namespace Microsoft.ComputeLimit; + +/** Compute limits shared by the subscription. */ +@parentResource(SubscriptionLocationResource) +model SharedLimit is ProxyResource { + ...ResourceNameParameter< + Resource = SharedLimit, + KeyName = "name", + SegmentName = "sharedLimits" + >; +} + +/** Properties of the compute shared limit. */ +model SharedLimitProperties { + /** The limit name properties. */ + @visibility(Lifecycle.Read) + resourceName?: LimitName; + + /** The maximum permitted usage of the resource. */ + @visibility(Lifecycle.Read) + limit?: int32; + + /** The quota units, such as Count. */ + @visibility(Lifecycle.Read) + unit?: string = "Count"; + + ...DefaultProvisioningStateProperty; +} + +/** Properties of the limit name. */ +model LimitName { + /** The limit name. */ + value: string; + + /** The localized limit name. */ + @visibility(Lifecycle.Read) + localizedValue?: string; +} + +/** Extension-scoped operations for shared compute limits. */ +@armResourceOperations +interface SharedLimits { + /** + * Gets the properties of a compute limit shared by the host subscription with its guest subscriptions. + */ + get is ArmResourceRead; + + /** + * Enables sharing of a compute limit by the host subscription with its guest subscriptions. + */ + create is ArmResourceCreateOrReplaceSync; + + /** + * Disables sharing of a compute limit by the host subscription with its guest subscriptions. + */ + delete is ArmResourceDeleteSync; + + /** + * Lists all compute limits shared by the host subscription with its guest subscriptions. + */ + list is ArmResourceListAtScope; +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Create.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Create.json new file mode 100644 index 000000000000..e6befc4546b5 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Create.json @@ -0,0 +1,35 @@ +{ + "title": "Create a guest subscription", + "operationId": "GuestSubscriptions_Create", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "guestSubscriptionId": "11111111-1111-1111-1111-111111111111", + "resource": { + "properties": {} + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/guestSubscriptions/11111111-1111-1111-1111-111111111111", + "name": "11111111-1111-1111-1111-111111111111", + "type": "Microsoft.ComputeLimit/locations/guestSubscriptions", + "properties": { + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/guestSubscriptions/11111111-1111-1111-1111-111111111111", + "name": "11111111-1111-1111-1111-111111111111", + "type": "Microsoft.ComputeLimit/locations/guestSubscriptions", + "properties": { + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Delete.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Delete.json new file mode 100644 index 000000000000..5cffbce2f571 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Delete.json @@ -0,0 +1,14 @@ +{ + "title": "Delete a guest subscription", + "operationId": "GuestSubscriptions_Delete", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "guestSubscriptionId": "11111111-1111-1111-1111-111111111111" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Get.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Get.json new file mode 100644 index 000000000000..0bc0bdd05d2d --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_Get.json @@ -0,0 +1,22 @@ +{ + "title": "Get a guest subscription", + "operationId": "GuestSubscriptions_Get", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "guestSubscriptionId": "11111111-1111-1111-1111-111111111111" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/guestSubscriptions/11111111-1111-1111-1111-111111111111", + "name": "11111111-1111-1111-1111-111111111111", + "type": "Microsoft.ComputeLimit/locations/guestSubscriptions", + "properties": { + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_List.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_List.json new file mode 100644 index 000000000000..5ac2c573a8ad --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/GuestSubscriptions_List.json @@ -0,0 +1,33 @@ +{ + "title": "List guest subscriptions for a scope", + "operationId": "GuestSubscriptions_ListBySubscriptionLocationResource", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/guestSubscriptions/11111111-1111-1111-1111-111111111111", + "name": "11111111-1111-1111-1111-111111111111", + "type": "Microsoft.ComputeLimit/locations/guestSubscriptions", + "properties": { + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/guestSubscriptions/22222222-2222-2222-2222-222222222222", + "name": "22222222-2222-2222-2222-222222222222", + "type": "Microsoft.ComputeLimit/locations/guestSubscriptions", + "properties": { + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/Operations_List.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/Operations_List.json new file mode 100644 index 000000000000..2f451f662550 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/Operations_List.json @@ -0,0 +1,96 @@ +{ + "title": "List operations", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-08-15" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.ComputeLimit/operations/read", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Operations", + "operation": "List Available Operations", + "description": "Lists all available operations for Microsoft.ComputeLimit resource provider" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/guestSubscriptions/read", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Guest Subscriptions", + "operation": "List Guest Subscriptions", + "description": "Lists all guest subscriptions that are consuming shared compute limits" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/guestSubscriptions/read", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Guest Subscriptions", + "operation": "Get Guest Subscription", + "description": "Gets a specific guest subscription that is consuming shared compute limits" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/guestSubscriptions/write", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Guest Subscriptions", + "operation": "Create Guest Subscription", + "description": "Adds a subscription as a guest to consume the compute limits shared by the host subscription" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/guestSubscriptions/delete", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Guest Subscriptions", + "operation": "Delete Guest Subscription", + "description": "Removes a subscription as a guest to stop consuming the compute limits shared by the host subscription" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/sharedLimits/read", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Shared Limits", + "operation": "List Shared Limits", + "description": "Lists all shared compute limits" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/sharedLimits/read", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Shared Limits", + "operation": "Get Shared Limit", + "description": "Gets a specific shared compute limit" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/sharedLimits/write", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Shared Limits", + "operation": "Update Shared Limit", + "description": "Updates a shared compute limit" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/sharedLimits/delete", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Shared Limits", + "operation": "Delete Shared Limit", + "description": "Deletes a shared compute limit" + } + } + ] + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Create.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Create.json new file mode 100644 index 000000000000..bbf51954a0a6 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Create.json @@ -0,0 +1,47 @@ +{ + "title": "Create a shared limit", + "operationId": "SharedLimits_Create", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "name": "StandardDSv3Family", + "resource": { + "properties": {} + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/sharedLimits/StandardDSv3Family", + "name": "StandardDSv3Family", + "type": "Microsoft.ComputeLimit/locations/sharedLimits", + "properties": { + "resourceName": { + "value": "StandardDSv3Family", + "localizedValue": "Standard DSv3 Family vCPUs" + }, + "limit": 100, + "unit": "Count", + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/sharedLimits/StandardDSv3Family", + "name": "StandardDSv3Family", + "type": "Microsoft.ComputeLimit/locations/sharedLimits", + "properties": { + "resourceName": { + "value": "StandardDSv3Family", + "localizedValue": "Standard DSv3 Family vCPUs" + }, + "limit": 100, + "unit": "Count", + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Delete.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Delete.json new file mode 100644 index 000000000000..3561f29cbe40 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Delete.json @@ -0,0 +1,14 @@ +{ + "title": "Delete a shared limit", + "operationId": "SharedLimits_Delete", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "name": "StandardDSv3Family" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Get.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Get.json new file mode 100644 index 000000000000..e5b0c23ac9ca --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_Get.json @@ -0,0 +1,28 @@ +{ + "title": "Get a shared limit", + "operationId": "SharedLimits_Get", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "name": "StandardDSv3Family" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/sharedLimits/StandardDSv3Family", + "name": "StandardDSv3Family", + "type": "Microsoft.ComputeLimit/locations/sharedLimits", + "properties": { + "resourceName": { + "value": "StandardDSv3Family", + "localizedValue": "Standard DSv3 Family vCPUs" + }, + "limit": 100, + "unit": "Count", + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_List.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_List.json new file mode 100644 index 000000000000..61d626387024 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/examples/2025-08-15/SharedLimits_List.json @@ -0,0 +1,45 @@ +{ + "title": "List all shared limits for a scope", + "operationId": "SharedLimits_ListBySubscriptionLocationResource", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/sharedLimits/StandardDSv3Family", + "name": "StandardDSv3Family", + "type": "Microsoft.ComputeLimit/locations/sharedLimits", + "properties": { + "resourceName": { + "value": "StandardDSv3Family", + "localizedValue": "Standard DSv3 Family vCPUs" + }, + "limit": 100, + "unit": "Count", + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/sharedLimits/StandardFSv2Family", + "name": "StandardFSv2Family", + "type": "Microsoft.ComputeLimit/locations/sharedLimits", + "properties": { + "resourceName": { + "value": "StandardFSv2Family", + "localizedValue": "Standard FSv2 Family vCPUs" + }, + "limit": 50, + "unit": "Count", + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/main.tsp b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/main.tsp new file mode 100644 index 000000000000..ce31f9d37eef --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/main.tsp @@ -0,0 +1,24 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./GuestSubscription.tsp"; +import "./SharedLimit.tsp"; + +using Azure.ResourceManager; +using TypeSpec.Versioning; + +/** Microsoft Azure Compute Limit Resource Provider. */ +@armProviderNamespace +@service(#{ title: "Azure Compute Limit API" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) +namespace Microsoft.ComputeLimit; + +/** The available API versions. */ +enum Versions { + /** The 2025-08-15 API version. */ + v2025_08_15: "2025-08-15", +} + +interface Operations extends Azure.ResourceManager.Operations {} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/readme.md b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/readme.md new file mode 100644 index 000000000000..da512b3197b9 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/readme.md @@ -0,0 +1,38 @@ +# Microsoft.ComputeLimit API + +> see https://aka.ms/autorest + +## Getting Started + +To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run: + +> `autorest readme.md` + +To see additional help and options, run: + +> `autorest --help` + +For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. + +> `autorest readme.md` + +## Configuration + +### Basic Information + +These are the global settings. + +```yaml +openapi-type: arm +openapi-subtype: rpaas +tag: package-2025-08-15 +``` + +### Tag: package-2025-08-15 + +These settings apply only when `--tag=package-2025-08-15` is specified on the command line. + +```yaml $(tag) == 'package-2025-08-15' +input-file: + - stable/2025-08-15/ComputeLimit.json +``` \ No newline at end of file diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/ComputeLimit.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/ComputeLimit.json new file mode 100644 index 000000000000..a4f1729649c2 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/ComputeLimit.json @@ -0,0 +1,643 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Compute Limit API", + "version": "2025-08-15", + "description": "Microsoft Azure Compute Limit Resource Provider.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "GuestSubscriptions" + }, + { + "name": "SharedLimits" + } + ], + "paths": { + "/providers/Microsoft.ComputeLimit/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List operations": { + "$ref": "./examples/Operations_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeLimit/locations/{location}/guestSubscriptions": { + "get": { + "operationId": "GuestSubscriptions_ListBySubscriptionLocationResource", + "tags": [ + "GuestSubscriptions" + ], + "description": "Lists all guest subscriptions in a location.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/GuestSubscriptionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List guest subscriptions for a scope": { + "$ref": "./examples/GuestSubscriptions_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeLimit/locations/{location}/guestSubscriptions/{guestSubscriptionId}": { + "get": { + "operationId": "GuestSubscriptions_Get", + "tags": [ + "GuestSubscriptions" + ], + "description": "Gets the properties of a guest subscription.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "guestSubscriptionId", + "in": "path", + "description": "The name of the GuestSubscription", + "required": true, + "type": "string", + "pattern": "^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/GuestSubscription" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a guest subscription": { + "$ref": "./examples/GuestSubscriptions_Get.json" + } + } + }, + "put": { + "operationId": "GuestSubscriptions_Create", + "tags": [ + "GuestSubscriptions" + ], + "description": "Adds a subscription as a guest to consume the compute limits shared by the host subscription.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "guestSubscriptionId", + "in": "path", + "description": "The name of the GuestSubscription", + "required": true, + "type": "string", + "pattern": "^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/GuestSubscription" + } + } + ], + "responses": { + "200": { + "description": "Resource 'GuestSubscription' update operation succeeded", + "schema": { + "$ref": "#/definitions/GuestSubscription" + } + }, + "201": { + "description": "Resource 'GuestSubscription' create operation succeeded", + "schema": { + "$ref": "#/definitions/GuestSubscription" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create a guest subscription": { + "$ref": "./examples/GuestSubscriptions_Create.json" + } + } + }, + "delete": { + "operationId": "GuestSubscriptions_Delete", + "tags": [ + "GuestSubscriptions" + ], + "description": "Deletes a subscription as a guest to stop consuming the compute limits shared by the host subscription.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "guestSubscriptionId", + "in": "path", + "description": "The name of the GuestSubscription", + "required": true, + "type": "string", + "pattern": "^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a guest subscription": { + "$ref": "./examples/GuestSubscriptions_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeLimit/locations/{location}/sharedLimits": { + "get": { + "operationId": "SharedLimits_ListBySubscriptionLocationResource", + "tags": [ + "SharedLimits" + ], + "description": "Lists all compute limits shared by the host subscription with its guest subscriptions.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SharedLimitListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all shared limits for a scope": { + "$ref": "./examples/SharedLimits_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeLimit/locations/{location}/sharedLimits/{name}": { + "get": { + "operationId": "SharedLimits_Get", + "tags": [ + "SharedLimits" + ], + "description": "Gets the properties of a compute limit shared by the host subscription with its guest subscriptions.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the SharedLimit", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/SharedLimit" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a shared limit": { + "$ref": "./examples/SharedLimits_Get.json" + } + } + }, + "put": { + "operationId": "SharedLimits_Create", + "tags": [ + "SharedLimits" + ], + "description": "Enables sharing of a compute limit by the host subscription with its guest subscriptions.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the SharedLimit", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/SharedLimit" + } + } + ], + "responses": { + "200": { + "description": "Resource 'SharedLimit' update operation succeeded", + "schema": { + "$ref": "#/definitions/SharedLimit" + } + }, + "201": { + "description": "Resource 'SharedLimit' create operation succeeded", + "schema": { + "$ref": "#/definitions/SharedLimit" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create a shared limit": { + "$ref": "./examples/SharedLimits_Create.json" + } + } + }, + "delete": { + "operationId": "SharedLimits_Delete", + "tags": [ + "SharedLimits" + ], + "description": "Disables sharing of a compute limit by the host subscription with its guest subscriptions.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "name", + "in": "path", + "description": "The name of the SharedLimit", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9-]{3,24}$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a shared limit": { + "$ref": "./examples/SharedLimits_Delete.json" + } + } + } + } + }, + "definitions": { + "Azure.ResourceManager.ResourceProvisioningState": { + "type": "string", + "description": "The provisioning state of a resource type.", + "enum": [ + "Succeeded", + "Failed", + "Canceled" + ], + "x-ms-enum": { + "name": "ResourceProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + } + ] + }, + "readOnly": true + }, + "GuestSubscription": { + "type": "object", + "description": "Guest subscription that consumes shared compute limits.", + "properties": { + "properties": { + "$ref": "#/definitions/GuestSubscriptionProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "GuestSubscriptionListResult": { + "type": "object", + "description": "The response of a GuestSubscription list operation.", + "properties": { + "value": { + "type": "array", + "description": "The GuestSubscription items on this page", + "items": { + "$ref": "#/definitions/GuestSubscription" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "GuestSubscriptionProperties": { + "type": "object", + "description": "Properties for guest subscription.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/Azure.ResourceManager.ResourceProvisioningState", + "description": "The provisioning state of the resource.", + "readOnly": true + } + } + }, + "LimitName": { + "type": "object", + "description": "Properties of the limit name.", + "properties": { + "value": { + "type": "string", + "description": "The limit name." + }, + "localizedValue": { + "type": "string", + "description": "The localized limit name.", + "readOnly": true + } + }, + "required": [ + "value" + ] + }, + "SharedLimit": { + "type": "object", + "description": "Compute limits shared by the subscription.", + "properties": { + "properties": { + "$ref": "#/definitions/SharedLimitProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "SharedLimitListResult": { + "type": "object", + "description": "The response of a SharedLimit list operation.", + "properties": { + "value": { + "type": "array", + "description": "The SharedLimit items on this page", + "items": { + "$ref": "#/definitions/SharedLimit" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "SharedLimitProperties": { + "type": "object", + "description": "Properties of the compute shared limit.", + "properties": { + "resourceName": { + "$ref": "#/definitions/LimitName", + "description": "The limit name properties.", + "readOnly": true + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The maximum permitted usage of the resource.", + "readOnly": true + }, + "unit": { + "type": "string", + "description": "The quota units, such as Count.", + "default": "Count", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/Azure.ResourceManager.ResourceProvisioningState", + "description": "The provisioning state of the resource.", + "readOnly": true + } + } + } + }, + "parameters": {} +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Create.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Create.json new file mode 100644 index 000000000000..e6befc4546b5 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Create.json @@ -0,0 +1,35 @@ +{ + "title": "Create a guest subscription", + "operationId": "GuestSubscriptions_Create", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "guestSubscriptionId": "11111111-1111-1111-1111-111111111111", + "resource": { + "properties": {} + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/guestSubscriptions/11111111-1111-1111-1111-111111111111", + "name": "11111111-1111-1111-1111-111111111111", + "type": "Microsoft.ComputeLimit/locations/guestSubscriptions", + "properties": { + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/guestSubscriptions/11111111-1111-1111-1111-111111111111", + "name": "11111111-1111-1111-1111-111111111111", + "type": "Microsoft.ComputeLimit/locations/guestSubscriptions", + "properties": { + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Delete.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Delete.json new file mode 100644 index 000000000000..5cffbce2f571 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Delete.json @@ -0,0 +1,14 @@ +{ + "title": "Delete a guest subscription", + "operationId": "GuestSubscriptions_Delete", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "guestSubscriptionId": "11111111-1111-1111-1111-111111111111" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Get.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Get.json new file mode 100644 index 000000000000..0bc0bdd05d2d --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_Get.json @@ -0,0 +1,22 @@ +{ + "title": "Get a guest subscription", + "operationId": "GuestSubscriptions_Get", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "guestSubscriptionId": "11111111-1111-1111-1111-111111111111" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/guestSubscriptions/11111111-1111-1111-1111-111111111111", + "name": "11111111-1111-1111-1111-111111111111", + "type": "Microsoft.ComputeLimit/locations/guestSubscriptions", + "properties": { + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_List.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_List.json new file mode 100644 index 000000000000..5ac2c573a8ad --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/GuestSubscriptions_List.json @@ -0,0 +1,33 @@ +{ + "title": "List guest subscriptions for a scope", + "operationId": "GuestSubscriptions_ListBySubscriptionLocationResource", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/guestSubscriptions/11111111-1111-1111-1111-111111111111", + "name": "11111111-1111-1111-1111-111111111111", + "type": "Microsoft.ComputeLimit/locations/guestSubscriptions", + "properties": { + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/guestSubscriptions/22222222-2222-2222-2222-222222222222", + "name": "22222222-2222-2222-2222-222222222222", + "type": "Microsoft.ComputeLimit/locations/guestSubscriptions", + "properties": { + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/Operations_List.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/Operations_List.json new file mode 100644 index 000000000000..2f451f662550 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/Operations_List.json @@ -0,0 +1,96 @@ +{ + "title": "List operations", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-08-15" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.ComputeLimit/operations/read", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Operations", + "operation": "List Available Operations", + "description": "Lists all available operations for Microsoft.ComputeLimit resource provider" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/guestSubscriptions/read", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Guest Subscriptions", + "operation": "List Guest Subscriptions", + "description": "Lists all guest subscriptions that are consuming shared compute limits" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/guestSubscriptions/read", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Guest Subscriptions", + "operation": "Get Guest Subscription", + "description": "Gets a specific guest subscription that is consuming shared compute limits" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/guestSubscriptions/write", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Guest Subscriptions", + "operation": "Create Guest Subscription", + "description": "Adds a subscription as a guest to consume the compute limits shared by the host subscription" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/guestSubscriptions/delete", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Guest Subscriptions", + "operation": "Delete Guest Subscription", + "description": "Removes a subscription as a guest to stop consuming the compute limits shared by the host subscription" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/sharedLimits/read", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Shared Limits", + "operation": "List Shared Limits", + "description": "Lists all shared compute limits" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/sharedLimits/read", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Shared Limits", + "operation": "Get Shared Limit", + "description": "Gets a specific shared compute limit" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/sharedLimits/write", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Shared Limits", + "operation": "Update Shared Limit", + "description": "Updates a shared compute limit" + } + }, + { + "name": "Microsoft.ComputeLimit/locations/sharedLimits/delete", + "display": { + "provider": "Microsoft ComputeLimit", + "resource": "Shared Limits", + "operation": "Delete Shared Limit", + "description": "Deletes a shared compute limit" + } + } + ] + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Create.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Create.json new file mode 100644 index 000000000000..bbf51954a0a6 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Create.json @@ -0,0 +1,47 @@ +{ + "title": "Create a shared limit", + "operationId": "SharedLimits_Create", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "name": "StandardDSv3Family", + "resource": { + "properties": {} + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/sharedLimits/StandardDSv3Family", + "name": "StandardDSv3Family", + "type": "Microsoft.ComputeLimit/locations/sharedLimits", + "properties": { + "resourceName": { + "value": "StandardDSv3Family", + "localizedValue": "Standard DSv3 Family vCPUs" + }, + "limit": 100, + "unit": "Count", + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/sharedLimits/StandardDSv3Family", + "name": "StandardDSv3Family", + "type": "Microsoft.ComputeLimit/locations/sharedLimits", + "properties": { + "resourceName": { + "value": "StandardDSv3Family", + "localizedValue": "Standard DSv3 Family vCPUs" + }, + "limit": 100, + "unit": "Count", + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Delete.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Delete.json new file mode 100644 index 000000000000..3561f29cbe40 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Delete.json @@ -0,0 +1,14 @@ +{ + "title": "Delete a shared limit", + "operationId": "SharedLimits_Delete", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "name": "StandardDSv3Family" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Get.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Get.json new file mode 100644 index 000000000000..e5b0c23ac9ca --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_Get.json @@ -0,0 +1,28 @@ +{ + "title": "Get a shared limit", + "operationId": "SharedLimits_Get", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus", + "name": "StandardDSv3Family" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/sharedLimits/StandardDSv3Family", + "name": "StandardDSv3Family", + "type": "Microsoft.ComputeLimit/locations/sharedLimits", + "properties": { + "resourceName": { + "value": "StandardDSv3Family", + "localizedValue": "Standard DSv3 Family vCPUs" + }, + "limit": 100, + "unit": "Count", + "provisioningState": "Succeeded" + } + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_List.json b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_List.json new file mode 100644 index 000000000000..61d626387024 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/stable/2025-08-15/examples/SharedLimits_List.json @@ -0,0 +1,45 @@ +{ + "title": "List all shared limits for a scope", + "operationId": "SharedLimits_ListBySubscriptionLocationResource", + "parameters": { + "api-version": "2025-08-15", + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "location": "eastus" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/sharedLimits/StandardDSv3Family", + "name": "StandardDSv3Family", + "type": "Microsoft.ComputeLimit/locations/sharedLimits", + "properties": { + "resourceName": { + "value": "StandardDSv3Family", + "localizedValue": "Standard DSv3 Family vCPUs" + }, + "limit": 100, + "unit": "Count", + "provisioningState": "Succeeded" + } + }, + { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/providers/Microsoft.ComputeLimit/locations/eastus/sharedLimits/StandardFSv2Family", + "name": "StandardFSv2Family", + "type": "Microsoft.ComputeLimit/locations/sharedLimits", + "properties": { + "resourceName": { + "value": "StandardFSv2Family", + "localizedValue": "Standard FSv2 Family vCPUs" + }, + "limit": 50, + "unit": "Count", + "provisioningState": "Succeeded" + } + } + ] + } + } + } +} diff --git a/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml new file mode 100644 index 000000000000..e1d2e523f5d2 --- /dev/null +++ b/specification/computelimit/resource-manager/Microsoft.ComputeLimit/ComputeLimit/tspconfig.yaml @@ -0,0 +1,57 @@ +emit: + - "@azure-tools/typespec-autorest" +parameters: + service-dir: + default: "sdk/computelimit" +options: + "@azure-tools/typespec-autorest": + emitter-output-dir: "{project-root}" + azure-resource-provider-folder: "resource-manager" + output-file: "{version-status}/{version}/ComputeLimit.json" + examples-dir: "{project-root}/examples" + arm-resource-flattening: true + arm-types-dir: "{project-root}/../../../../common-types/resource-management" + use-read-only-status-schema: true + "@azure-tools/typespec-java": + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-computelimit" + package-dir: "azure-resourcemanager-computelimit" + namespace: "com.azure.resourcemanager.computelimit" + "@azure-tools/typespec-ts": + flavor: azure + experimental-extensible-enums: true + emitter-output-dir: "{output-dir}/{service-dir}/arm-computelimit" + package-dir: "arm-computelimit" + package-details: + name: "@azure/arm-computelimit" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/computelimit" + emitter-output-dir: "{output-dir}/{service-dir}/armcomputelimit" + package-dir: "armcomputelimit" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/{package-dir}" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true + "@azure-tools/typespec-python": + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-computelimit" + package-dir: "azure-mgmt-computelimit" + namespace: "azure.mgmt.computelimit" + generate-sample: true + generate-test: true + "@azure-tools/typespec-csharp": + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/{namespace}" + package-dir: "Azure.ResourceManager.ComputeLimit" + namespace: "Azure.ResourceManager.ComputeLimit" + clear-output-folder: true + model-namespace: true +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" + disable: + "@azure-tools/typespec-azure-core/casing-style": "https://github.com/Azure/typespec-azure/issues/1845" + "@azure-tools/typespec-azure-resource-manager/arm-resource-operation": "https://github.com/Azure/typespec-azure/issues/2081" + "@azure-tools/typespec-azure-resource-manager/lro-location-header": "https://github.com/Azure/typespec-azure/issues/1785" + "@azure-tools/typespec-azure-resource-manager/no-response-body": "https://github.com/Azure/typespec-azure/issues/1785"