{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-graph/json-schema/microsoft-graph-microsoft-graph-ios-vpp-app-schema.json",
  "title": "microsoft.graph.iosVppApp",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-graph-deviceappmanagement-mobileapp-api-openapi.yml#/components/schemas/microsoft.graph.iosVppApp",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.mobileApp"
    },
    {
      "title": "iosVppApp",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "applicableDeviceType": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.iosDeviceType"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The applicable iOS Device Type."
        },
        "appStoreUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "The store URL."
        },
        "bundleId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The Identity Name."
        },
        "licensingType": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.vppLicensingType"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The supported License Type."
        },
        "releaseDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": [
            "string",
            "null"
          ],
          "description": "The VPP application release date and time.",
          "format": "date-time"
        },
        "totalLicenseCount": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The total number of VPP licenses.",
          "format": "int32"
        },
        "usedLicenseCount": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The number of VPP licenses in use.",
          "format": "int32"
        },
        "vppTokenAccountType": {
          "$ref": "#/$defs/microsoft.graph.vppTokenAccountType"
        },
        "vppTokenAppleId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The Apple Id associated with the given Apple Volume Purchase Program Token."
        },
        "vppTokenOrganizationName": {
          "type": [
            "string",
            "null"
          ],
          "description": "The organization associated with the Apple Volume Purchase Program Token"
        },
        "@odata.type": {
          "type": "string",
          "default": "#microsoft.graph.iosVppApp"
        }
      },
      "description": "Contains properties and inherited properties for iOS Volume-Purchased Program (VPP) Apps."
    }
  ],
  "x-ms-discriminator-value": "#microsoft.graph.iosVppApp",
  "$defs": {
    "microsoft.graph.deviceAndAppManagementAssignmentTarget": {
      "title": "deviceAndAppManagementAssignmentTarget",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "@odata.type": {
          "type": "string"
        }
      },
      "description": "Base type for assignment targets."
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.installIntent": {
      "title": "installIntent",
      "enum": [
        "available",
        "required",
        "uninstall",
        "availableWithoutEnrollment"
      ],
      "type": "string",
      "description": "Possible values for the install intent chosen by the admin.",
      "x-ms-enum": {
        "name": "installIntent",
        "modelAsString": false,
        "values": [
          {
            "value": "available",
            "description": "Available install intent.",
            "name": "available"
          },
          {
            "value": "required",
            "description": "Required install intent.",
            "name": "required"
          },
          {
            "value": "uninstall",
            "description": "Uninstall install intent.",
            "name": "uninstall"
          },
          {
            "value": "availableWithoutEnrollment",
            "description": "Available without enrollment install intent.",
            "name": "availableWithoutEnrollment"
          }
        ]
      }
    },
    "microsoft.graph.iosDeviceType": {
      "title": "iosDeviceType",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "iPad": {
          "type": "boolean",
          "description": "Whether the app should run on iPads."
        },
        "iPhoneAndIPod": {
          "type": "boolean",
          "description": "Whether the app should run on iPhones and iPods."
        },
        "@odata.type": {
          "type": "string"
        }
      },
      "description": "Contains properties of the possible iOS device types the mobile app can run on."
    },
    "microsoft.graph.mimeContent": {
      "title": "mimeContent",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "type": {
          "type": [
            "string",
            "null"
          ],
          "description": "Indicates the content mime type."
        },
        "value": {
          "type": [
            "string",
            "null"
          ],
          "description": "The byte array that contains the actual content.",
          "format": "base64url"
        },
        "@odata.type": {
          "type": "string"
        }
      },
      "description": "Contains properties for a generic mime content."
    },
    "microsoft.graph.mobileApp": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "mobileApp",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "createdDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": "string",
              "description": "The date and time the app was created. This property is read-only.",
              "format": "date-time",
              "readOnly": true
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "description": "The description of the app."
            },
            "developer": {
              "type": [
                "string",
                "null"
              ],
              "description": "The developer of the app."
            },
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The admin provided or imported title of the app."
            },
            "informationUrl": {
              "type": [
                "string",
                "null"
              ],
              "description": "The more information Url."
            },
            "isFeatured": {
              "type": "boolean",
              "description": "The value indicating whether the app is marked as featured by the admin."
            },
            "largeIcon": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.mimeContent"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The large icon, to be displayed in the app details and used for upload of the icon."
            },
            "lastModifiedDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": "string",
              "description": "The date and time the app was last modified. This property is read-only.",
              "format": "date-time",
              "readOnly": true
            },
            "notes": {
              "type": [
                "string",
                "null"
              ],
              "description": "Notes for the app."
            },
            "owner": {
              "type": [
                "string",
                "null"
              ],
              "description": "The owner of the app."
            },
            "privacyInformationUrl": {
              "type": [
                "string",
                "null"
              ],
              "description": "The privacy statement Url."
            },
            "publisher": {
              "type": [
                "string",
                "null"
              ],
              "description": "The publisher of the app."
            },
            "publishingState": {
              "$ref": "#/$defs/microsoft.graph.mobileAppPublishingState"
            },
            "assignments": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.mobileAppAssignment"
              },
              "description": "The list of group assignments for this mobile app.",
              "x-ms-navigationProperty": true
            },
            "categories": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.mobileAppCategory"
              },
              "description": "The list of categories for this app.",
              "x-ms-navigationProperty": true
            },
            "@odata.type": {
              "type": "string"
            }
          },
          "description": "An abstract class containing the base properties for Intune mobile apps. Note: Listing mobile apps with `$expand=assignments` has been deprecated. Instead get the list of apps without the `$expand` query on `assignments`. Then, perform the expansion on individual applications."
        }
      ]
    },
    "microsoft.graph.mobileAppAssignment": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "mobileAppAssignment",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "intent": {
              "$ref": "#/$defs/microsoft.graph.installIntent"
            },
            "settings": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.mobileAppAssignmentSettings"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The settings for target assignment defined by the admin."
            },
            "target": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.deviceAndAppManagementAssignmentTarget"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The target group assignment defined by the admin."
            },
            "@odata.type": {
              "type": "string"
            }
          },
          "description": "A class containing the properties used for Group Assignment of a Mobile App."
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.mobileAppAssignment"
    },
    "microsoft.graph.mobileAppAssignmentSettings": {
      "title": "mobileAppAssignmentSettings",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "@odata.type": {
          "type": "string"
        }
      },
      "description": "Abstract class to contain properties used to assign a mobile app to a group."
    },
    "microsoft.graph.mobileAppCategory": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "mobileAppCategory",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The name of the app category."
            },
            "lastModifiedDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": "string",
              "description": "The date and time the mobileAppCategory was last modified. This property is read-only.",
              "format": "date-time",
              "readOnly": true
            },
            "@odata.type": {
              "type": "string"
            }
          },
          "description": "Contains properties for a single Intune app category."
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.mobileAppCategory"
    },
    "microsoft.graph.mobileAppPublishingState": {
      "title": "mobileAppPublishingState",
      "enum": [
        "notPublished",
        "processing",
        "published"
      ],
      "type": "string",
      "description": "Indicates the publishing state of an app.",
      "x-ms-enum": {
        "name": "mobileAppPublishingState",
        "modelAsString": false,
        "values": [
          {
            "value": "notPublished",
            "description": "The app is not yet published.",
            "name": "notPublished"
          },
          {
            "value": "processing",
            "description": "The app is pending service-side processing.",
            "name": "processing"
          },
          {
            "value": "published",
            "description": "The app is published.",
            "name": "published"
          }
        ]
      }
    },
    "microsoft.graph.vppLicensingType": {
      "title": "vppLicensingType",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "supportsDeviceLicensing": {
          "type": "boolean",
          "description": "Whether the program supports the device licensing type."
        },
        "supportsUserLicensing": {
          "type": "boolean",
          "description": "Whether the program supports the user licensing type."
        },
        "@odata.type": {
          "type": "string"
        }
      },
      "description": "Contains properties for iOS Volume-Purchased Program (Vpp) Licensing Type."
    },
    "microsoft.graph.vppTokenAccountType": {
      "title": "vppTokenAccountType",
      "enum": [
        "business",
        "education"
      ],
      "type": "string",
      "description": "Possible types of an Apple Volume Purchase Program token.",
      "x-ms-enum": {
        "name": "vppTokenAccountType",
        "modelAsString": false,
        "values": [
          {
            "value": "business",
            "description": "Apple Volume Purchase Program token associated with an business program.",
            "name": "business"
          },
          {
            "value": "education",
            "description": "Apple Volume Purchase Program token associated with an education program.",
            "name": "education"
          }
        ]
      }
    }
  }
}