{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure/json-schema/microsoft-azure-maps-account-schema.json",
  "title": "MapsAccount",
  "description": "An Azure resource which represents access to a suite of Maps REST APIs.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-accounts-api-openapi.yml#/components/schemas/MapsAccount",
  "type": "object",
  "properties": {
    "sku": {
      "description": "The SKU of this account.",
      "$ref": "#/$defs/Sku_2"
    },
    "kind": {
      "description": "Get or Set Kind property.",
      "$ref": "#/$defs/Kind"
    },
    "systemData": {
      "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/systemData"
    },
    "identity": {
      "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity"
    },
    "properties": {
      "description": "The map account properties.",
      "$ref": "#/$defs/MapsAccountProperties"
    }
  },
  "required": [
    "sku"
  ],
  "allOf": [
    {
      "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource"
    }
  ],
  "x-ms-azure-resource": true,
  "$defs": {
    "CorsRule": {
      "type": "object",
      "properties": {
        "allowedOrigins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or \"*\" to allow all domains"
        }
      },
      "required": [
        "allowedOrigins"
      ],
      "description": "Specifies a CORS rule for the Maps Account."
    },
    "CorsRules": {
      "type": "object",
      "properties": {
        "corsRules": {
          "type": "array",
          "maxItems": 5,
          "items": {
            "description": "Specifies a CORS rule for the Maps Account.",
            "$ref": "#/$defs/CorsRule"
          },
          "x-ms-identifiers": [],
          "description": "The list of CORS rules. You can include up to five CorsRule elements in the request. "
        }
      },
      "description": "Sets the CORS rules. You can include up to five CorsRule elements in the request. "
    },
    "Kind": {
      "description": "The Kind of the Maps Account.",
      "type": "string",
      "enum": [
        "Gen2"
      ],
      "x-ms-enum": {
        "name": "kind",
        "modelAsString": true
      }
    },
    "LinkedResource": {
      "type": "object",
      "properties": {
        "uniqueName": {
          "type": "string",
          "description": "A provided name which uniquely identifies the linked resource."
        },
        "id": {
          "type": "string",
          "description": "ARM resource id in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/accounts/{storageName}'."
        }
      },
      "required": [
        "uniqueName",
        "id"
      ],
      "description": "Linked resource is reference to a resource deployed in an Azure subscription, add the linked resource `uniqueName` value as an optional parameter for operations on Azure Maps Geospatial REST APIs."
    },
    "LinkedResources": {
      "type": "array",
      "maxItems": 10,
      "items": {
        "$ref": "#/$defs/LinkedResource"
      },
      "description": "The array of associated resources to the Maps account. Linked resource in the array cannot individually update, you must update all linked resources in the array together. These resources may be used on operations on the Azure Maps REST API. Access is controlled by the Maps Account Managed Identity(s) permissions to those resource(s)."
    },
    "Locations": {
      "description": "The list of data processing locations for the Maps Account.",
      "type": "array",
      "items": {
        "description": "Data processing location.",
        "type": "object",
        "properties": {
          "locationName": {
            "type": "string",
            "description": "The location name."
          }
        },
        "required": [
          "locationName"
        ]
      },
      "x-ms-identifiers": [
        "locationName"
      ]
    },
    "MapsAccountProperties": {
      "description": "Additional Maps account properties",
      "type": "object",
      "properties": {
        "uniqueId": {
          "description": "A unique identifier for the Maps Account",
          "type": "string",
          "readOnly": true
        },
        "disableLocalAuth": {
          "description": "Allows toggle functionality on Azure Policy to disable Azure Maps local authentication support. This will disable Shared Keys and Shared Access Signature Token authentication from any usage.",
          "type": "boolean",
          "default": false
        },
        "provisioningState": {
          "type": "string",
          "description": "The provisioning state of the Maps account resource, Account updates can only be performed on terminal states. Terminal states: `Succeeded` and `Failed`",
          "readOnly": true
        },
        "linkedResources": {
          "$ref": "#/$defs/LinkedResources"
        },
        "cors": {
          "$ref": "#/$defs/CorsRules",
          "description": "Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service."
        },
        "encryption": {
          "$ref": "../../../../../common-types/resource-management/v5/customermanagedkeys.json#/definitions/encryption"
        },
        "privateEndpointConnections": {
          "readOnly": true,
          "type": "array",
          "items": {
            "$ref": "../../../../../common-types/resource-management/v5/privatelinks.json#/definitions/PrivateEndpointConnection"
          },
          "x-ms-identifiers": [
            "properties/privateEndpoint/id"
          ],
          "description": "List of private endpoint connections associated with the Maps Account."
        },
        "publicNetworkAccess": {
          "type": "string",
          "default": "enabled",
          "enum": [
            "enabled",
            "disabled"
          ],
          "x-ms-enum": {
            "name": "PublicNetworkAccess",
            "modelAsString": true
          },
          "description": "Property to specify whether the Maps Account will accept traffic from public internet. If set to 'disabled' all traffic except private endpoint traffic and that that originates from trusted services will be blocked."
        },
        "locations": {
          "$ref": "#/$defs/Locations",
          "description": "List of additional data processing regions for the Maps Account, which may result in requests being processed in another geography. Some features or results may be restricted to specific regions. By default, Maps REST APIs process requests according to the account location or the [geographic scope](https://learn.microsoft.com/en-us/azure/azure-maps/geographic-scope)."
        }
      }
    },
    "Sku_2": {
      "description": "The SKU of the Maps Account.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the SKU, in standard format (such as G2).",
          "type": "string",
          "enum": [
            "G2"
          ],
          "x-ms-enum": {
            "name": "name",
            "modelAsString": true
          }
        },
        "tier": {
          "readOnly": true,
          "type": "string",
          "description": "Gets the sku tier. This is based on the SKU name."
        }
      },
      "required": [
        "name"
      ]
    }
  }
}