{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-graph/json-schema/microsoft-graph-microsoft-graph-service-announcement-schema.json",
  "title": "microsoft.graph.serviceAnnouncement",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-graph-admin-serviceannouncement-api-openapi.yml#/components/schemas/microsoft.graph.serviceAnnouncement",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.entity"
    },
    {
      "title": "serviceAnnouncement",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "healthOverviews": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.serviceHealth"
          },
          "description": "A collection of service health information for tenant. This property is a contained navigation property, it is nullable and readonly.",
          "x-ms-navigationProperty": true
        },
        "issues": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.serviceHealthIssue"
          },
          "description": "A collection of service issues for tenant. This property is a contained navigation property, it is nullable and readonly.",
          "x-ms-navigationProperty": true
        },
        "messages": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.serviceUpdateMessage"
          },
          "description": "A collection of service messages for tenant. This property is a contained navigation property, it is nullable and readonly.",
          "x-ms-navigationProperty": true
        },
        "@odata.type": {
          "type": "string"
        }
      }
    }
  ],
  "x-ms-discriminator-value": "#microsoft.graph.serviceAnnouncement",
  "$defs": {
    "microsoft.graph.bodyType": {
      "title": "bodyType",
      "enum": [
        "text",
        "html"
      ],
      "type": "string"
    },
    "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.itemBody": {
      "title": "itemBody",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "content": {
          "type": [
            "string",
            "null"
          ],
          "description": "The content of the item."
        },
        "contentType": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.bodyType"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The type of the content. Possible values are text and html."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.keyValuePair": {
      "title": "keyValuePair",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name for this key-value pair"
        },
        "value": {
          "type": [
            "string",
            "null"
          ],
          "description": "Value for this key-value pair"
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.postType": {
      "title": "postType",
      "enum": [
        "regular",
        "quick",
        "strategic",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.serviceAnnouncementAttachment": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "serviceAnnouncementAttachment",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "content": {
              "type": [
                "string",
                "null"
              ],
              "description": "The attachment content.",
              "format": "base64url"
            },
            "contentType": {
              "type": [
                "string",
                "null"
              ]
            },
            "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",
                "null"
              ],
              "format": "date-time"
            },
            "name": {
              "type": [
                "string",
                "null"
              ]
            },
            "size": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "format": "int32"
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.serviceAnnouncementAttachment"
    },
    "microsoft.graph.serviceAnnouncementBase": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "serviceAnnouncementBase",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "details": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.keyValuePair"
              },
              "description": "More details about service event. This property doesn't support filters."
            },
            "endDateTime": {
              "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 end time of the service event.",
              "format": "date-time"
            },
            "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 last modified time of the service event.",
              "format": "date-time"
            },
            "startDateTime": {
              "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 start time of the service event.",
              "format": "date-time"
            },
            "title": {
              "type": "string",
              "description": "The title of the service event."
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ]
    },
    "microsoft.graph.serviceHealth": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "serviceHealth",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "service": {
              "type": "string",
              "description": "The service name. Use the list healthOverviews operation to get exact string names for services subscribed by the tenant."
            },
            "status": {
              "$ref": "#/$defs/microsoft.graph.serviceHealthStatus"
            },
            "issues": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.serviceHealthIssue"
              },
              "description": "A collection of issues that happened on the service, with detailed information for each issue.",
              "x-ms-navigationProperty": true
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.serviceHealth"
    },
    "microsoft.graph.serviceHealthClassificationType": {
      "title": "serviceHealthClassificationType",
      "enum": [
        "advisory",
        "incident",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.serviceHealthIssue": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.serviceAnnouncementBase"
        },
        {
          "title": "serviceHealthIssue",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "classification": {
              "$ref": "#/$defs/microsoft.graph.serviceHealthClassificationType"
            },
            "feature": {
              "type": [
                "string",
                "null"
              ],
              "description": "The feature name of the service issue."
            },
            "featureGroup": {
              "type": [
                "string",
                "null"
              ],
              "description": "The feature group name of the service issue."
            },
            "impactDescription": {
              "type": "string",
              "description": "The description of the service issue impact."
            },
            "isResolved": {
              "type": "boolean",
              "description": "Indicates whether the issue is resolved."
            },
            "origin": {
              "$ref": "#/$defs/microsoft.graph.serviceHealthOrigin"
            },
            "posts": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.serviceHealthIssuePost"
              },
              "description": "Collection of historical posts for the service issue."
            },
            "service": {
              "type": "string",
              "description": "Indicates the service affected by the issue."
            },
            "status": {
              "$ref": "#/$defs/microsoft.graph.serviceHealthStatus"
            },
            "@odata.type": {
              "type": "string",
              "default": "#microsoft.graph.serviceHealthIssue"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.serviceHealthIssue"
    },
    "microsoft.graph.serviceHealthIssuePost": {
      "title": "serviceHealthIssuePost",
      "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 published time of the post.",
          "format": "date-time"
        },
        "description": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.itemBody"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The content of the service issue post. The supported value for the contentType property is html."
        },
        "postType": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.postType"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The post type of the service issue historical post. The possible values are: regular, quick, strategic, unknownFutureValue."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.serviceHealthOrigin": {
      "title": "serviceHealthOrigin",
      "enum": [
        "microsoft",
        "thirdParty",
        "customer",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.serviceHealthStatus": {
      "title": "serviceHealthStatus",
      "enum": [
        "serviceOperational",
        "investigating",
        "restoringService",
        "verifyingService",
        "serviceRestored",
        "postIncidentReviewPublished",
        "serviceDegradation",
        "serviceInterruption",
        "extendedRecovery",
        "falsePositive",
        "investigationSuspended",
        "resolved",
        "mitigatedExternal",
        "mitigated",
        "resolvedExternal",
        "confirmed",
        "reported",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.serviceUpdateCategory": {
      "title": "serviceUpdateCategory",
      "enum": [
        "preventOrFixIssue",
        "planForChange",
        "stayInformed",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.serviceUpdateMessage": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.serviceAnnouncementBase"
        },
        {
          "title": "serviceUpdateMessage",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "actionRequiredByDateTime": {
              "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 expected deadline of the action for the message.",
              "format": "date-time"
            },
            "attachmentsArchive": {
              "type": [
                "string",
                "null"
              ],
              "description": "The zip file that contains all attachments for a message.",
              "format": "base64url"
            },
            "body": {
              "$ref": "#/$defs/microsoft.graph.itemBody"
            },
            "category": {
              "$ref": "#/$defs/microsoft.graph.serviceUpdateCategory"
            },
            "hasAttachments": {
              "type": "boolean",
              "description": "Indicates whether the message has any attachment."
            },
            "isMajorChange": {
              "type": [
                "boolean",
                "null"
              ],
              "description": "Indicates whether the message describes a major update for the service."
            },
            "services": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": "The affected services by the service message."
            },
            "severity": {
              "$ref": "#/$defs/microsoft.graph.serviceUpdateSeverity"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": "A collection of tags for the service message. Tags are provided by the service team/support team who post the message to tell whether this message contains privacy data, or whether this message is for a service new feature update, and so on."
            },
            "viewPoint": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.serviceUpdateMessageViewpoint"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "Represents user viewpoints data of the service message. This data includes message status such as whether the user has archived, read, or marked the message as favorite. This property is null when accessed with application permissions."
            },
            "attachments": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.serviceAnnouncementAttachment"
              },
              "description": "A collection of serviceAnnouncementAttachments.",
              "x-ms-navigationProperty": true
            },
            "@odata.type": {
              "type": "string",
              "default": "#microsoft.graph.serviceUpdateMessage"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.serviceUpdateMessage"
    },
    "microsoft.graph.serviceUpdateMessageViewpoint": {
      "title": "serviceUpdateMessageViewpoint",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "isArchived": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the user archived the message."
        },
        "isFavorited": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the user marked the message as favorite."
        },
        "isRead": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the user read the message."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.serviceUpdateSeverity": {
      "title": "serviceUpdateSeverity",
      "enum": [
        "normal",
        "high",
        "critical",
        "unknownFutureValue"
      ],
      "type": "string"
    }
  }
}