{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://schema.api.gov/microsoft-azure/resource", "title": "Azure Resource", "description": "The base resource model for Azure Resource Manager resources. All Azure resources inherit from this schema, which defines the standard properties shared by all Azure resource types including ID, name, type, location, tags, and system metadata.", "type": "object", "properties": { "id": { "type": "string", "description": "Fully qualified resource ID for the resource. The format is /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.", "readOnly": true, "examples": [ "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM" ] }, "name": { "type": "string", "description": "The name of the resource.", "readOnly": true, "examples": [ "myVM" ] }, "type": { "type": "string", "description": "The type of the resource, in the format {resourceProviderNamespace}/{resourceType}.", "readOnly": true, "examples": [ "Microsoft.Compute/virtualMachines" ] }, "location": { "type": "string", "description": "The geo-location where the resource lives. Must be one of the supported Azure regions.", "examples": [ "eastus", "westus2", "westeurope", "southeastasia" ] }, "tags": { "type": "object", "description": "Resource tags. Key-value pairs used to organize and categorize Azure resources for billing, management, and automation purposes.", "additionalProperties": { "type": "string" }, "examples": [ { "environment": "production", "department": "engineering", "cost-center": "12345" } ] }, "managedBy": { "type": "string", "description": "The fully qualified resource ID of the resource that manages this resource. Used when a resource is managed by another Azure resource." }, "kind": { "type": "string", "description": "The kind of the resource. Metadata used by the portal/tooling/etc. to render different UX experiences for resources of the same type.", "pattern": "^[-\\w\\._,\\(\\)]+$" }, "etag": { "type": "string", "description": "Resource Etag for optimistic concurrency control.", "readOnly": true }, "identity": { "$ref": "#/$defs/ManagedServiceIdentity" }, "sku": { "$ref": "#/$defs/Sku" }, "plan": { "$ref": "#/$defs/Plan" }, "zones": { "type": "array", "description": "The availability zones for the resource.", "items": { "type": "string" }, "examples": [ ["1", "2", "3"] ] }, "systemData": { "$ref": "#/$defs/SystemData" } }, "required": [ "location" ], "$defs": { "ManagedServiceIdentity": { "type": "object", "description": "Managed service identity (system assigned and/or user assigned identities).", "properties": { "principalId": { "type": "string", "format": "uuid", "description": "The service principal ID of the system assigned identity.", "readOnly": true }, "tenantId": { "type": "string", "format": "uuid", "description": "The tenant ID of the system assigned identity.", "readOnly": true }, "type": { "type": "string", "description": "Type of managed service identity.", "enum": [ "None", "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned" ] }, "userAssignedIdentities": { "type": "object", "description": "The set of user assigned identities associated with the resource. Dictionary keys are ARM resource IDs.", "additionalProperties": { "$ref": "#/$defs/UserAssignedIdentity" } } }, "required": [ "type" ] }, "UserAssignedIdentity": { "type": "object", "description": "User assigned identity properties.", "properties": { "principalId": { "type": "string", "format": "uuid", "description": "The principal ID of the assigned identity.", "readOnly": true }, "clientId": { "type": "string", "format": "uuid", "description": "The client ID of the assigned identity.", "readOnly": true } } }, "Sku": { "type": "object", "description": "The resource model definition representing SKU.", "properties": { "name": { "type": "string", "description": "The name of the SKU. E.g., P3. It is typically a letter+number code." }, "tier": { "type": "string", "description": "This field is required to be implemented by the Resource Provider if the service has more than one tier.", "enum": [ "Free", "Basic", "Standard", "Premium" ] }, "size": { "type": "string", "description": "The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code." }, "family": { "type": "string", "description": "If the service has different generations of hardware, for the same SKU, then that can be captured here." }, "capacity": { "type": "integer", "format": "int32", "description": "If the SKU supports scale out/in then the capacity integer should be included." } }, "required": [ "name" ] }, "Plan": { "type": "object", "description": "Plan for the resource.", "properties": { "name": { "type": "string", "description": "A user defined name of the 3rd Party Artifact that is being procured." }, "publisher": { "type": "string", "description": "The publisher of the 3rd Party Artifact that is being bought." }, "product": { "type": "string", "description": "The 3rd Party artifact that is being procured." }, "promotionCode": { "type": "string", "description": "A publisher provided promotion code." }, "version": { "type": "string", "description": "The version of the desired product/artifact." } }, "required": [ "name", "publisher", "product" ] }, "SystemData": { "type": "object", "description": "Metadata pertaining to creation and last modification of the resource.", "properties": { "createdBy": { "type": "string", "description": "The identity that created the resource." }, "createdByType": { "type": "string", "description": "The type of identity that created the resource.", "enum": [ "User", "Application", "ManagedIdentity", "Key" ] }, "createdAt": { "type": "string", "format": "date-time", "description": "The timestamp of resource creation (UTC)." }, "lastModifiedBy": { "type": "string", "description": "The identity that last modified the resource." }, "lastModifiedByType": { "type": "string", "description": "The type of identity that last modified the resource.", "enum": [ "User", "Application", "ManagedIdentity", "Key" ] }, "lastModifiedAt": { "type": "string", "format": "date-time", "description": "The timestamp of resource last modification (UTC)." } }, "readOnly": true } } }