{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-graph/json-schema/microsoft-graph-microsoft-graph-participant-schema.json",
  "title": "microsoft.graph.participant",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-graph-communications-call-api-openapi.yml#/components/schemas/microsoft.graph.participant",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.entity"
    },
    {
      "title": "participant",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "info": {
          "$ref": "#/$defs/microsoft.graph.participantInfo"
        },
        "isInLobby": {
          "type": "boolean",
          "description": "true if the participant is in lobby."
        },
        "isMuted": {
          "type": "boolean",
          "description": "true if the participant is muted (client or server muted)."
        },
        "mediaStreams": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.mediaStream"
          },
          "description": "The list of media streams."
        },
        "metadata": {
          "type": [
            "string",
            "null"
          ],
          "description": "A blob of data provided by the participant in the roster."
        },
        "recordingInfo": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.recordingInfo"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Information about whether the participant has recording capability."
        },
        "removedState": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.removedState"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Indicates the reason why the participant was removed from the roster."
        },
        "restrictedExperience": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.onlineMeetingRestricted"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Indicates the reason or reasons media content from this participant is restricted."
        },
        "rosterSequenceNumber": {
          "type": [
            "number",
            "null"
          ],
          "description": "Indicates the roster sequence number in which the participant was last updated.",
          "format": "int64"
        },
        "@odata.type": {
          "type": "string"
        }
      }
    }
  ],
  "x-ms-discriminator-value": "#microsoft.graph.participant",
  "$defs": {
    "microsoft.graph.endpointType": {
      "title": "endpointType",
      "enum": [
        "default",
        "voicemail",
        "skypeForBusiness",
        "skypeForBusinessVoipPhone",
        "unknownFutureValue"
      ],
      "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.identity": {
      "title": "identity",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "displayName": {
          "type": [
            "string",
            "null"
          ],
          "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta."
        },
        "id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.identitySet": {
      "title": "identitySet",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "application": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.identity"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Optional. The application associated with this action."
        },
        "device": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.identity"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Optional. The device associated with this action."
        },
        "user": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.identity"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Optional. The user associated with this action."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.mediaDirection": {
      "title": "mediaDirection",
      "enum": [
        "inactive",
        "sendOnly",
        "receiveOnly",
        "sendReceive"
      ],
      "type": "string"
    },
    "microsoft.graph.mediaStream": {
      "title": "mediaStream",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "direction": {
          "$ref": "#/$defs/microsoft.graph.mediaDirection"
        },
        "label": {
          "type": [
            "string",
            "null"
          ],
          "description": "The media stream label."
        },
        "mediaType": {
          "$ref": "#/$defs/microsoft.graph.modality"
        },
        "serverMuted": {
          "type": "boolean",
          "description": "If the media is muted by the server."
        },
        "sourceId": {
          "type": "string",
          "description": "The source ID."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.modality": {
      "title": "modality",
      "enum": [
        "audio",
        "video",
        "videoBasedScreenSharing",
        "data",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.onlineMeetingContentSharingDisabledReason": {
      "title": "onlineMeetingContentSharingDisabledReason",
      "enum": [
        "watermarkProtection",
        "unknownFutureValue"
      ],
      "type": "string",
      "x-ms-enum-flags": {
        "isFlags": true
      }
    },
    "microsoft.graph.onlineMeetingRestricted": {
      "title": "onlineMeetingRestricted",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "contentSharingDisabled": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.onlineMeetingContentSharingDisabledReason"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Specifies the reason shared content from this participant is disabled. The possible values are: watermarkProtection, unknownFutureValue."
        },
        "videoDisabled": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.onlineMeetingVideoDisabledReason"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Specifies the reason video from this participant is disabled. The possible values are: watermarkProtection, unknownFutureValue."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.onlineMeetingVideoDisabledReason": {
      "title": "onlineMeetingVideoDisabledReason",
      "enum": [
        "watermarkProtection",
        "unknownFutureValue"
      ],
      "type": "string",
      "x-ms-enum-flags": {
        "isFlags": true
      }
    },
    "microsoft.graph.participantInfo": {
      "title": "participantInfo",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "countryCode": {
          "type": [
            "string",
            "null"
          ],
          "description": "The ISO 3166-1 Alpha-2 country code of the participant's best estimated physical location at the start of the call. Read-only."
        },
        "endpointType": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.endpointType"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The type of endpoint the participant is using. The possible values are: default, skypeForBusiness, or skypeForBusinessVoipPhone. Read-only."
        },
        "identity": {
          "$ref": "#/$defs/microsoft.graph.identitySet"
        },
        "languageId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The language culture string. Read-only."
        },
        "participantId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The participant ID of the participant. Read-only."
        },
        "region": {
          "type": [
            "string",
            "null"
          ],
          "description": "The home region of the participant. This can be a country, a continent, or a larger geographic region. This doesn't change based on the participant's current physical location. Read-only."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.recordingInfo": {
      "title": "recordingInfo",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "initiator": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.identitySet"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The identities of the recording initiator."
        },
        "recordingStatus": {
          "$ref": "#/$defs/microsoft.graph.recordingStatus"
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.recordingStatus": {
      "title": "recordingStatus",
      "enum": [
        "unknown",
        "notRecording",
        "recording",
        "failed",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.removedState": {
      "title": "removedState",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "reason": {
          "type": [
            "string",
            "null"
          ],
          "description": "The removal reason for the participant resource."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    }
  }
}