Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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<GuestSubscriptionProperties> {
...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<GuestSubscription>;

/**
* Adds a subscription as a guest to consume the compute limits shared by the host subscription.
*/
create is ArmResourceCreateOrReplaceSync<GuestSubscription>;

/**
* Deletes a subscription as a guest to stop consuming the compute limits shared by the host subscription.
*/
delete is ArmResourceDeleteSync<GuestSubscription>;

/**
* Lists all guest subscriptions in a location.
*/
list is ArmResourceListAtScope<GuestSubscription>;
}
Original file line number Diff line number Diff line change
@@ -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<SharedLimitProperties> {
...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<SharedLimit>;

/**
* Enables sharing of a compute limit by the host subscription with its guest subscriptions.
*/
create is ArmResourceCreateOrReplaceSync<SharedLimit>;

/**
* Disables sharing of a compute limit by the host subscription with its guest subscriptions.
*/
delete is ArmResourceDeleteSync<SharedLimit>;

/**
* Lists all compute limits shared by the host subscription with its guest subscriptions.
*/
list is ArmResourceListAtScope<SharedLimit>;
}
Original file line number Diff line number Diff line change
@@ -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"
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -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": {}
}
}
Original file line number Diff line number Diff line change
@@ -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"
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -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"
}
}
]
}
}
}
}
Original file line number Diff line number Diff line change
@@ -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"
}
}
]
}
}
}
}
Original file line number Diff line number Diff line change
@@ -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"
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -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": {}
}
}
Loading