{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-graph/json-schema/microsoft-graph-microsoft-graph-managed-ebook-schema.json",
  "title": "microsoft.graph.managedEBook",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-graph-deviceappmanagement-managedebook-api-openapi.yml#/components/schemas/microsoft.graph.managedEBook",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.entity"
    },
    {
      "title": "managedEBook",
      "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 when the eBook file was created.",
          "format": "date-time"
        },
        "description": {
          "type": [
            "string",
            "null"
          ],
          "description": "Description."
        },
        "displayName": {
          "type": "string",
          "description": "Name of the eBook."
        },
        "informationUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "The more information Url."
        },
        "largeCover": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.mimeContent"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Book cover."
        },
        "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 when the eBook was last modified.",
          "format": "date-time"
        },
        "privacyInformationUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "The privacy statement Url."
        },
        "publishedDateTime": {
          "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 when the eBook was published.",
          "format": "date-time"
        },
        "publisher": {
          "type": [
            "string",
            "null"
          ],
          "description": "Publisher."
        },
        "assignments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.managedEBookAssignment"
          },
          "description": "The list of assignments for this eBook.",
          "x-ms-navigationProperty": true
        },
        "deviceStates": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.deviceInstallState"
          },
          "description": "The list of installation states for this eBook.",
          "x-ms-navigationProperty": true
        },
        "installSummary": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.eBookInstallSummary"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Mobile App Install Summary.",
          "x-ms-navigationProperty": true
        },
        "userStateSummary": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.userInstallStateSummary"
          },
          "description": "The list of installation states for this eBook.",
          "x-ms-navigationProperty": true
        },
        "@odata.type": {
          "type": "string"
        }
      },
      "description": "An abstract class containing the base properties for Managed eBook."
    }
  ],
  "$defs": {
    "microsoft.graph.deviceAndAppManagementAssignmentTarget": {
      "title": "deviceAndAppManagementAssignmentTarget",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "@odata.type": {
          "type": "string"
        }
      },
      "description": "Base type for assignment targets."
    },
    "microsoft.graph.deviceInstallState": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "deviceInstallState",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "deviceId": {
              "type": [
                "string",
                "null"
              ],
              "description": "Device Id."
            },
            "deviceName": {
              "type": [
                "string",
                "null"
              ],
              "description": "Device name."
            },
            "errorCode": {
              "type": [
                "string",
                "null"
              ],
              "description": "The error code for install failures."
            },
            "installState": {
              "$ref": "#/$defs/microsoft.graph.installState"
            },
            "lastSyncDateTime": {
              "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": "Last sync date and time.",
              "format": "date-time"
            },
            "osDescription": {
              "type": [
                "string",
                "null"
              ],
              "description": "OS Description."
            },
            "osVersion": {
              "type": [
                "string",
                "null"
              ],
              "description": "OS Version."
            },
            "userName": {
              "type": [
                "string",
                "null"
              ],
              "description": "Device User Name."
            },
            "@odata.type": {
              "type": "string"
            }
          },
          "description": "Contains properties for the installation state for a device."
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.deviceInstallState"
    },
    "microsoft.graph.eBookInstallSummary": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "eBookInstallSummary",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "failedDeviceCount": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "Number of Devices that have failed to install this book.",
              "format": "int32"
            },
            "failedUserCount": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "Number of Users that have 1 or more device that failed to install this book.",
              "format": "int32"
            },
            "installedDeviceCount": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "Number of Devices that have successfully installed this book.",
              "format": "int32"
            },
            "installedUserCount": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "Number of Users whose devices have all succeeded to install this book.",
              "format": "int32"
            },
            "notInstalledDeviceCount": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "Number of Devices that does not have this book installed.",
              "format": "int32"
            },
            "notInstalledUserCount": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "Number of Users that did not install this book.",
              "format": "int32"
            },
            "@odata.type": {
              "type": "string"
            }
          },
          "description": "Contains properties for the installation summary of a book for a device."
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.eBookInstallSummary"
    },
    "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.installState": {
      "title": "installState",
      "enum": [
        "notApplicable",
        "installed",
        "failed",
        "notInstalled",
        "uninstallFailed",
        "unknown"
      ],
      "type": "string",
      "description": "Possible values for install state.",
      "x-ms-enum": {
        "name": "installState",
        "modelAsString": false,
        "values": [
          {
            "value": "notApplicable",
            "description": "Not Applicable.",
            "name": "notApplicable"
          },
          {
            "value": "installed",
            "description": "Installed.",
            "name": "installed"
          },
          {
            "value": "failed",
            "description": "Failed.",
            "name": "failed"
          },
          {
            "value": "notInstalled",
            "description": "Not Installed.",
            "name": "notInstalled"
          },
          {
            "value": "uninstallFailed",
            "description": "Uninstall Failed.",
            "name": "uninstallFailed"
          },
          {
            "value": "unknown",
            "description": "Unknown.",
            "name": "unknown"
          }
        ]
      }
    },
    "microsoft.graph.managedEBookAssignment": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "managedEBookAssignment",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "installIntent": {
              "$ref": "#/$defs/microsoft.graph.installIntent"
            },
            "target": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.deviceAndAppManagementAssignmentTarget"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The assignment target for eBook."
            },
            "@odata.type": {
              "type": "string"
            }
          },
          "description": "Contains properties used to assign a eBook to a group."
        }
      ]
    },
    "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.userInstallStateSummary": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "userInstallStateSummary",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "failedDeviceCount": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "Failed Device Count.",
              "format": "int32"
            },
            "installedDeviceCount": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "Installed Device Count.",
              "format": "int32"
            },
            "notInstalledDeviceCount": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "Not installed device count.",
              "format": "int32"
            },
            "userName": {
              "type": [
                "string",
                "null"
              ],
              "description": "User name."
            },
            "deviceStates": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.deviceInstallState"
              },
              "description": "The install state of the eBook.",
              "x-ms-navigationProperty": true
            },
            "@odata.type": {
              "type": "string"
            }
          },
          "description": "Contains properties for the installation state summary for a user."
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.userInstallStateSummary"
    }
  }
}