{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure/json-schema/microsoft-azure-app-attach-package-patch-schema.json",
  "title": "AppAttachPackagePatch",
  "description": "Schema for patchable App Attach Package properties.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-appattachpackage-api-openapi.yml#/components/schemas/AppAttachPackagePatch",
  "type": "object",
  "allOf": [
    {
      "$ref": "../../../../../common-types/resource-management/v1/types.json#/definitions/Resource"
    }
  ],
  "properties": {
    "tags": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "tags to be updated"
    },
    "properties": {
      "description": "Detailed properties for App Attach Package",
      "$ref": "#/$defs/AppAttachPackagePatchProperties",
      "x-ms-client-flatten": false
    }
  },
  "$defs": {
    "AppAttachPackageInfoProperties": {
      "description": "Schema for Import Package Information properties.",
      "type": "object",
      "properties": {
        "packageAlias": {
          "type": "string",
          "description": "Alias of App Attach Package. Assigned at import time"
        },
        "imagePath": {
          "type": "string",
          "description": "VHD/CIM image path on Network Share."
        },
        "packageName": {
          "type": "string",
          "description": "Package Name from appxmanifest.xml. "
        },
        "packageFamilyName": {
          "type": "string",
          "description": "Package Family Name from appxmanifest.xml. Contains Package Name and Publisher name. "
        },
        "packageFullName": {
          "type": "string",
          "description": "Package Full Name from appxmanifest.xml. "
        },
        "displayName": {
          "type": [
            "string",
            "null"
          ],
          "description": "User friendly Name to be displayed in the portal. "
        },
        "packageRelativePath": {
          "type": "string",
          "description": "Relative Path to the package inside the image. "
        },
        "isRegularRegistration": {
          "type": "boolean",
          "description": "Specifies how to register Package in feed."
        },
        "isActive": {
          "type": "boolean",
          "description": "Make this version of the package the active one across the hostpool. "
        },
        "packageDependencies": {
          "type": [
            "array",
            "null"
          ],
          "description": "List of package dependencies. ",
          "items": {
            "$ref": "#/$defs/MsixPackageDependencies"
          },
          "x-ms-identifiers": []
        },
        "version": {
          "type": "string",
          "description": "Package Version found in the appxmanifest.xml. "
        },
        "lastUpdated": {
          "format": "date-time",
          "type": "string",
          "description": "Date Package was last updated, found in the appxmanifest.xml. "
        },
        "packageApplications": {
          "type": "array",
          "description": "List of package applications. ",
          "items": {
            "$ref": "#/$defs/MsixPackageApplications"
          },
          "x-ms-identifiers": []
        },
        "certificateName": {
          "type": [
            "string",
            "null"
          ],
          "description": "Certificate name found in the appxmanifest.xml. "
        },
        "certificateExpiry": {
          "format": "date-time",
          "type": [
            "string",
            "null"
          ],
          "description": "Date certificate expires, found in the appxmanifest.xml. "
        },
        "isPackageTimestamped": {
          "enum": [
            "Timestamped",
            "NotTimestamped"
          ],
          "x-ms-enum": {
            "name": "packageTimestamped",
            "modelAsString": true
          },
          "type": [
            "string",
            "null"
          ],
          "description": "Is package timestamped so it can ignore the certificate expiry date"
        }
      }
    },
    "AppAttachPackagePatchProperties": {
      "description": "Schema for patchable fields on an App Attach Package.",
      "type": "object",
      "properties": {
        "image": {
          "description": "Detailed properties for App Attach Package",
          "$ref": "#/$defs/AppAttachPackageInfoProperties"
        },
        "hostPoolReferences": {
          "type": "array",
          "description": "List of Hostpool resource Ids.",
          "items": {
            "type": "string"
          }
        },
        "keyVaultURL": {
          "type": "string",
          "description": "URL of keyvault location to store certificate"
        },
        "failHealthCheckOnStagingFailure": {
          "$ref": "#/$defs/FailHealthCheckOnStagingFailureEnum",
          "description": "Parameter indicating how the health check should behave if this package fails staging"
        }
      }
    },
    "FailHealthCheckOnStagingFailureEnum": {
      "enum": [
        "Unhealthy",
        "NeedsAssistance",
        "DoNotFail"
      ],
      "x-ms-enum": {
        "name": "failHealthCheckOnStagingFailure",
        "modelAsString": true
      },
      "type": "string",
      "description": "Parameter indicating how the health check should behave if this package fails staging"
    },
    "MsixPackageApplications": {
      "description": "Schema for MSIX Package Application properties.",
      "type": "object",
      "properties": {
        "appId": {
          "type": "string",
          "description": "Package Application Id, found in appxmanifest.xml."
        },
        "description": {
          "type": "string",
          "description": "Description of Package Application."
        },
        "appUserModelID": {
          "type": "string",
          "description": "Used to activate Package Application. Consists of Package Name and ApplicationID. Found in appxmanifest.xml."
        },
        "friendlyName": {
          "type": "string",
          "description": "User friendly name."
        },
        "iconImageName": {
          "type": "string",
          "description": "User friendly name."
        },
        "rawIcon": {
          "type": "string",
          "format": "byte",
          "description": "the icon a 64 bit string as a byte array."
        },
        "rawPng": {
          "type": "string",
          "format": "byte",
          "description": "the icon a 64 bit string as a byte array."
        }
      }
    },
    "MsixPackageDependencies": {
      "description": "Schema for MSIX Package Dependencies properties.",
      "type": "object",
      "properties": {
        "dependencyName": {
          "type": "string",
          "description": "Name of package dependency."
        },
        "publisher": {
          "type": "string",
          "description": "Name of dependency publisher."
        },
        "minVersion": {
          "type": "string",
          "description": "Dependency version required."
        }
      }
    }
  }
}