{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure/json-schema/microsoft-azure-aml-filesystem-schema.json",
  "title": "AmlFilesystem",
  "description": "An AML file system instance. Follows Azure Resource Manager standards: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/resource-api-reference.md",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-amlfilesystems-api-openapi.yml#/components/schemas/AmlFilesystem",
  "x-ms-azure-resource": true,
  "type": "object",
  "allOf": [
    {
      "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/TrackedResource"
    }
  ],
  "properties": {
    "identity": {
      "$ref": "#/$defs/AmlFilesystemIdentity",
      "description": "The managed identity used by the AML file system, if configured."
    },
    "sku": {
      "description": "SKU for the resource.",
      "$ref": "#/$defs/SkuName"
    },
    "zones": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Availability zones for resources. This field should only contain a single element in the array.",
      "x-ms-mutability": [
        "read",
        "create"
      ]
    },
    "properties": {
      "x-ms-client-flatten": true,
      "description": "Properties of the AML file system.",
      "properties": {
        "storageCapacityTiB": {
          "description": "The size of the AML file system, in TiB. This might be rounded up.",
          "x-ms-mutability": [
            "read",
            "create"
          ],
          "type": "number",
          "format": "float"
        },
        "health": {
          "description": "Health of the AML file system.",
          "readOnly": true,
          "$ref": "#/$defs/AmlFilesystemHealth"
        },
        "provisioningState": {
          "description": "ARM provisioning state.",
          "enum": [
            "Succeeded",
            "Failed",
            "Creating",
            "Deleting",
            "Updating",
            "Canceled"
          ],
          "x-ms-enum": {
            "name": "AmlFilesystemProvisioningStateType",
            "modelAsString": true
          },
          "type": "string",
          "readOnly": true
        },
        "filesystemSubnet": {
          "description": "Subnet used for managing the AML file system and for client-facing operations. This subnet should have at least a /24 subnet mask within the VNET's address space.",
          "x-ms-mutability": [
            "read",
            "create"
          ],
          "$ref": "storagecache.json#/definitions/URLString"
        },
        "mgsAddress": {
          "description": "The IPv4 address used by clients to mount the AML file system's Lustre Management Service (MGS).",
          "readOnly": true,
          "type": "string"
        },
        "mountCommand": {
          "description": "Recommended command to mount the AML file system",
          "readOnly": true,
          "type": "string"
        },
        "lustreVersion": {
          "type": "string",
          "description": "The version of Lustre running in the AML file system",
          "readOnly": true
        },
        "throughputProvisionedMBps": {
          "type": "integer",
          "format": "int32",
          "description": "Throughput provisioned in MB per sec, calculated as storageCapacityTiB * per-unit storage throughput",
          "readOnly": true
        },
        "encryptionSettings": {
          "$ref": "#/$defs/AmlFilesystemEncryptionSettings",
          "description": "Specifies encryption settings of the AML file system."
        },
        "maintenanceWindow": {
          "description": "Start time of a 30-minute weekly maintenance window.",
          "type": "object",
          "properties": {
            "dayOfWeek": {
              "type": "string",
              "enum": [
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Friday",
                "Saturday",
                "Sunday"
              ],
              "x-ms-enum": {
                "name": "MaintenanceDayOfWeekType",
                "modelAsString": false
              },
              "description": "Day of the week on which the maintenance window will occur."
            },
            "timeOfDayUTC": {
              "type": "string",
              "pattern": "^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$",
              "description": "The time of day (in UTC) to start the maintenance window."
            }
          }
        },
        "hsm": {
          "type": "object",
          "description": "Hydration and archive settings and status",
          "properties": {
            "settings": {
              "$ref": "#/$defs/AmlFilesystemHsmSettings",
              "description": "Specifies HSM settings of the AML file system."
            },
            "archiveStatus": {
              "type": "array",
              "readOnly": true,
              "description": "Archive status",
              "items": {
                "$ref": "#/$defs/AmlFilesystemArchive"
              },
              "x-ms-identifiers": [
                "filesystemPath"
              ]
            }
          }
        }
      },
      "type": "object",
      "required": [
        "filesystemSubnet",
        "storageCapacityTiB",
        "maintenanceWindow"
      ]
    }
  },
  "$defs": {
    "AmlFilesystemArchive": {
      "description": "Information about the AML file system archive",
      "type": "object",
      "readOnly": true,
      "properties": {
        "filesystemPath": {
          "readOnly": true,
          "type": "string",
          "description": "Lustre file system path to archive relative to the file system root.  Specify '/' to archive all modified data."
        },
        "status": {
          "description": "The status of the archive",
          "type": "object",
          "readOnly": true,
          "properties": {
            "state": {
              "readOnly": true,
              "description": "The state of the archive operation",
              "type": "string",
              "enum": [
                "NotConfigured",
                "Idle",
                "InProgress",
                "Canceled",
                "Completed",
                "Failed",
                "Cancelling",
                "FSScanInProgress"
              ],
              "x-ms-enum": {
                "name": "ArchiveStatusType",
                "modelAsString": true
              }
            },
            "lastCompletionTime": {
              "readOnly": true,
              "description": "The time of the last completed archive operation",
              "type": "string",
              "format": "date-time"
            },
            "lastStartedTime": {
              "readOnly": true,
              "description": "The time the latest archive operation started",
              "type": "string",
              "format": "date-time"
            },
            "percentComplete": {
              "readOnly": true,
              "description": "The completion percentage of the archive operation",
              "type": "integer",
              "format": "int32"
            },
            "errorCode": {
              "readOnly": true,
              "description": "Server-defined error code for the archive operation",
              "type": "string"
            },
            "errorMessage": {
              "readOnly": true,
              "description": "Server-defined error message for the archive operation",
              "type": "string"
            }
          }
        }
      }
    },
    "AmlFilesystemEncryptionSettings": {
      "description": "AML file system encryption settings.",
      "properties": {
        "keyEncryptionKey": {
          "$ref": "storagecache.json#/definitions/KeyVaultKeyReference",
          "description": "Specifies the location of the encryption key in Key Vault."
        }
      },
      "type": "object"
    },
    "AmlFilesystemHealth": {
      "description": "An indication of AML file system health. Gives more information about health than just that related to provisioning.",
      "readOnly": true,
      "properties": {
        "state": {
          "description": "List of AML file system health states.",
          "enum": [
            "Unavailable",
            "Available",
            "Degraded",
            "Transitioning",
            "Maintenance"
          ],
          "x-ms-enum": {
            "name": "AmlFilesystemHealthStateType",
            "modelAsString": true
          },
          "type": "string"
        },
        "statusCode": {
          "description": "Server-defined error code for the AML file system health",
          "type": "string"
        },
        "statusDescription": {
          "description": "Describes the health state.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AmlFilesystemHsmSettings": {
      "description": "AML file system HSM settings.",
      "x-ms-mutability": [
        "read",
        "create"
      ],
      "type": "object",
      "properties": {
        "container": {
          "description": "Resource ID of storage container used for hydrating the namespace and archiving from the namespace. The resource provider must have permission to create SAS tokens on the storage account.",
          "$ref": "storagecache.json#/definitions/URLString"
        },
        "loggingContainer": {
          "description": "Resource ID of storage container used for logging events and errors.  Must be a separate container in the same storage account as the hydration and archive container. The resource provider must have permission to create SAS tokens on the storage account.",
          "$ref": "storagecache.json#/definitions/URLString"
        },
        "importPrefix": {
          "description": "Only blobs in the non-logging container that start with this path/prefix get hydrated into the cluster namespace.",
          "type": "string",
          "default": "/"
        }
      },
      "required": [
        "container",
        "loggingContainer"
      ]
    },
    "AmlFilesystemIdentity": {
      "type": "object",
      "description": "Managed Identity properties.",
      "x-ms-mutability": [
        "read",
        "create"
      ],
      "properties": {
        "principalId": {
          "readOnly": true,
          "type": "string",
          "description": "The principal ID for the user-assigned identity of the resource."
        },
        "tenantId": {
          "readOnly": true,
          "type": "string",
          "description": "The tenant ID associated with the resource."
        },
        "type": {
          "type": "string",
          "description": "The type of identity used for the resource.",
          "enum": [
            "UserAssigned",
            "None"
          ],
          "x-ms-enum": {
            "name": "AmlFilesystemIdentityType",
            "modelAsString": false
          }
        },
        "userAssignedIdentities": {
          "description": "A dictionary where each key is a user assigned identity resource ID, and each key's value is an empty dictionary.",
          "$ref": "#/$defs/UserAssignedIdentities"
        }
      }
    },
    "SkuName": {
      "x-ms-mutability": [
        "read",
        "create"
      ],
      "description": "SKU for the resource.",
      "properties": {
        "name": {
          "description": "SKU name for this resource.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "UserAssignedIdentities": {
      "type": "object",
      "description": "A dictionary where each key is a user assigned identity resource ID, and each key's value is an empty dictionary.",
      "additionalProperties": {
        "type": "object",
        "x-ms-client-name": "userAssignedIdentitiesValue",
        "properties": {
          "principalId": {
            "readOnly": true,
            "type": "string",
            "description": "The principal ID of the user-assigned identity."
          },
          "clientId": {
            "readOnly": true,
            "type": "string",
            "description": "The client ID of the user-assigned identity."
          }
        }
      }
    }
  }
}