{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/MediaSessionQuality",
  "title": "MediaSessionQuality",
  "type": "object",
  "required": [
    "meetingInstanceId"
  ],
  "properties": {
    "meetingInstanceId": {
      "type": "string",
      "example": "e5dba9613a9d455aa49f6ffdafb6e7db_I_191395283063545470",
      "description": "The meeting identifier for the specific meeting instance."
    },
    "webexUserName": {
      "type": "string",
      "example": "John Andersen",
      "description": "The display name of the participant of this media session."
    },
    "webexUserEmail": {
      "type": "string",
      "example": "john.andersen@example.com",
      "description": "The email address of the participant of this media session."
    },
    "joinTime": {
      "type": "string",
      "example": "2020-04-10T17:00:00.000Z",
      "description": "The date and time when this participant joined the meeting."
    },
    "leaveTime": {
      "type": "string",
      "example": "2020-04-10T17:02:00.000Z",
      "description": "The date and time when this participant left the meeting."
    },
    "joinMeetingTime": {
      "type": "string",
      "example": "5.793",
      "description": "The join meeting time of the participant. "
    },
    "clientType": {
      "type": "string",
      "example": "Teams_Mobile_Client (iOS)",
      "description": "The type of the client (and OS) used by this media session."
    },
    "clientVersion": {
      "type": "string",
      "example": "40.5.0.210",
      "description": "The version of the client used by this media session."
    },
    "osType": {
      "type": "string",
      "example": "mac",
      "description": "The operating system used for the client."
    },
    "osVersion": {
      "type": "string",
      "example": "Version 10.14.6 (Build 18G3020)",
      "description": "The version of the operating system used for the client."
    },
    "hardwareType": {
      "type": "string",
      "example": "mac book",
      "description": "The type of hardware used to attend the meeting"
    },
    "speakerName": {
      "type": "string",
      "example": "MacBook Pro Speakers",
      "description": "A description of the speaker used in the meeting."
    },
    "networkType": {
      "type": "string",
      "enum": [
        "wifi",
        "cellular",
        "ethernet",
        "unknown"
      ],
      "description": "The type of network."
    },
    "localIP": {
      "type": "string",
      "example": "10.24.72.54",
      "description": "The local IP address of the client."
    },
    "publicIP": {
      "type": "string",
      "example": "10.24.72.54",
      "description": "The public IP address of the client."
    },
    "maskedLocalIP": {
      "type": "string",
      "example": "10.24.72.54",
      "description": "The masked local IP address of the client."
    },
    "maskedPublicIP": {
      "type": "string",
      "example": "10.24.72.54",
      "description": "The masked public IP address of the client."
    },
    "camera": {
      "type": "string",
      "example": "FaceTime HD Camera",
      "description": "A description of the camera used in the meeting."
    },
    "microphone": {
      "type": "string",
      "example": "External Microphone",
      "description": "A description of the microphone used in the meeting."
    },
    "serverRegion": {
      "type": "string",
      "example": "San Jose, USA",
      "description": "The server region."
    },
    "videoMeshCluster": {
      "type": "string",
      "example": "Mesh Cluster One",
      "description": "The video mesh cluster name."
    },
    "videoMeshServer": {
      "type": "string",
      "example": "server.example.com",
      "description": "The video mesh server name."
    },
    "participantId": {
      "type": "string",
      "example": "8635cbf0ca1a4573b27348e560679b25_I_158174534545967299_57",
      "description": "Identifies the participant."
    },
    "participantSessionId": {
      "type": "string",
      "example": "3324C9D0-9EA7-45A2-B249-5B62A384AFEF",
      "description": "Identifies a specific session the participant has in a given meeting."
    },
    "videoIn": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/VideoIn"
      },
      "description": "The collection of downstream (sent to the client) video quality data."
    },
    "videoOut": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/VideoOut"
      },
      "description": "The collection of upstream (sent from the client) video quality data."
    },
    "audioIn": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AudioIn"
      },
      "description": "The collection of downstream (sent to the client) audio quality data."
    },
    "audioOut": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AudioOut"
      },
      "description": "The collection of upstream (sent from the client) audio quality data."
    },
    "shareIn": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ShareIn"
      },
      "description": "The collection of downstream (sent to the client) share quality data."
    },
    "shareOut": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ShareOut"
      },
      "description": "The collection of upstream (sent from the client) share quality data."
    },
    "resources": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Resources"
      },
      "description": "Device resources such as CPU and memory."
    }
  }
}