{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure/json-schema/microsoft-azure-account-sas-parameters-schema.json",
  "title": "AccountSasParameters",
  "description": "Parameters used to create an account Shared Access Signature (SAS) token. The REST API access control is provided by Azure Maps Role Based Access (RBAC) identity and access.",
  "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/AccountSasParameters",
  "type": "object",
  "properties": {
    "signingKey": {
      "type": "string",
      "description": "The Maps account key to use for signing. Picking `primaryKey` or `secondaryKey` will use the Maps account Shared Keys, and using `managedIdentity` will use the auto-renewed private key to sign the SAS.",
      "enum": [
        "primaryKey",
        "secondaryKey",
        "managedIdentity"
      ],
      "x-ms-enum": {
        "name": "SigningKey",
        "modelAsString": true
      }
    },
    "principalId": {
      "description": "The principal Id also known as the object Id of a User Assigned Managed Identity currently assigned to the Maps Account. To assign a Managed Identity of the account, use operation Create or Update an assign a User Assigned Identity resource Id.",
      "type": "string"
    },
    "regions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional, allows control of which region locations are permitted access to Azure Maps REST APIs with the SAS token. Example: \"eastus\", \"westus2\". Omitting this parameter will allow all region locations to be accessible."
    },
    "maxRatePerSecond": {
      "type": "integer",
      "maximum": 500,
      "default": 500,
      "format": "int32",
      "description": "Required parameter which represents the desired maximum request per second to allowed for the given SAS token. This does not guarantee perfect accuracy in measurements but provides application safe guards of abuse with eventual enforcement.",
      "exclusiveMinimum": 0
    },
    "start": {
      "description": "The date time offset of when the token validity begins. For example \"2017-05-24T10:42:03.1567373Z\". Maximum duration allowed is 24 hours between `start` and `expiry`.",
      "type": "string"
    },
    "expiry": {
      "description": "The date time offset of when the token validity expires. For example \"2017-05-24T10:42:03.1567373Z\". Maximum duration allowed is 24 hours between `start` and `expiry`.",
      "type": "string"
    }
  },
  "required": [
    "signingKey",
    "principalId",
    "maxRatePerSecond",
    "start",
    "expiry"
  ]
}