{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-graph/json-schema/microsoft-graph-microsoft-graph-mobile-app-schema.json",
  "title": "microsoft.graph.mobileApp",
  "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.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."
    }
  ],
  "$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.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.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"
          }
        ]
      }
    }
  }
}