{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-graph/json-schema/microsoft-graph-microsoft-graph-call-records-call-record-schema.json",
  "title": "microsoft.graph.callRecords.callRecord",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-graph-communications-callrecord-api-openapi.yml#/components/schemas/microsoft.graph.callRecords.callRecord",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.entity"
    },
    {
      "title": "callRecord",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "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",
          "description": "UTC time when the last user left the call. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
          "format": "date-time"
        },
        "joinWebUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "Meeting URL associated to the call. May not be available for a peerToPeer call record type."
        },
        "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": "UTC time when the call record was created. The DatetimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
          "format": "date-time"
        },
        "modalities": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.callRecords.modality"
          },
          "description": "List of all the modalities used in the call. The possible values are: unknown, audio, video, videoBasedScreenSharing, data, screenSharing, unknownFutureValue."
        },
        "organizer": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.identitySet"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The organizing party's identity. The organizer property is deprecated and will stop returning data on June 30, 2026. Going forward, use the organizer_v2 relationship."
        },
        "participants": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.identitySet"
          },
          "description": "List of distinct identities involved in the call. Limited to 130 entries. The participants property is deprecated and will stop returning data on June 30, 2026. Going forward, use the participants_v2 relationship."
        },
        "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": "UTC time when the first user joined the call. The DatetimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.",
          "format": "date-time"
        },
        "type": {
          "$ref": "#/$defs/microsoft.graph.callRecords.callType"
        },
        "version": {
          "type": "number",
          "description": "Monotonically increasing version of the call record. Higher version call records with the same id includes additional data compared to the lower version.",
          "format": "int64"
        },
        "organizer_v2": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.callRecords.organizer"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Identity of the organizer of the call. This relationship is expanded by default in callRecord methods.",
          "x-ms-navigationProperty": true
        },
        "participants_v2": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.callRecords.participant"
          },
          "description": "List of distinct participants in the call.",
          "x-ms-navigationProperty": true
        },
        "sessions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.callRecords.session"
          },
          "description": "List of sessions involved in the call. Peer-to-peer calls typically only have one session, whereas group calls typically have at least one session per participant. Read-only. Nullable.",
          "x-ms-navigationProperty": true
        },
        "@odata.type": {
          "type": "string"
        }
      }
    }
  ],
  "x-ms-discriminator-value": "#microsoft.graph.callRecords.callRecord",
  "$defs": {
    "ReferenceNumeric": {
      "enum": [
        "-INF",
        "INF",
        "NaN"
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "microsoft.graph.callRecords.administrativeUnitInfo": {
      "title": "administrativeUnitInfo",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier for the administrative unit."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.callRecords.audioCodec": {
      "title": "audioCodec",
      "enum": [
        "unknown",
        "invalid",
        "cn",
        "pcma",
        "pcmu",
        "amrWide",
        "g722",
        "g7221",
        "g7221c",
        "g729",
        "multiChannelAudio",
        "muchv2",
        "opus",
        "satin",
        "satinFullband",
        "rtAudio8",
        "rtAudio16",
        "silk",
        "silkNarrow",
        "silkWide",
        "siren",
        "xmsRta",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.callRecords.callType": {
      "title": "callType",
      "enum": [
        "unknown",
        "groupCall",
        "peerToPeer",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.callRecords.deviceInfo": {
      "title": "deviceInfo",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "captureDeviceDriver": {
          "type": [
            "string",
            "null"
          ],
          "description": "Name of the capture device driver used by the media endpoint."
        },
        "captureDeviceName": {
          "type": [
            "string",
            "null"
          ],
          "description": "Name of the capture device used by the media endpoint."
        },
        "captureNotFunctioningEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected the capture device was not working properly."
        },
        "cpuInsufficentEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected the CPU resources available were insufficient and caused poor quality of the audio sent and received."
        },
        "deviceClippingEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected clipping in the captured audio that caused poor quality of the audio being sent."
        },
        "deviceGlitchEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected glitches or gaps in the audio played or captured that caused poor quality of the audio being sent or received."
        },
        "howlingEventCount": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "Number of times during the call that the media endpoint detected howling or screeching audio.",
          "format": "int32"
        },
        "initialSignalLevelRootMeanSquare": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "The root mean square (RMS) of the incoming signal of up to the first 30 seconds of the call."
        },
        "lowSpeechLevelEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected low speech level that caused poor quality of the audio being sent."
        },
        "lowSpeechToNoiseEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected low speech to noise level that caused poor quality of the audio being sent."
        },
        "micGlitchRate": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Glitches per 5 minute interval for the media endpoint's microphone."
        },
        "receivedNoiseLevel": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "Average energy level of received audio for audio classified as mono noise or left channel of stereo noise by the media endpoint.",
          "format": "int32"
        },
        "receivedSignalLevel": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "Average energy level of received audio for audio classified as mono speech, or left channel of stereo speech by the media endpoint.",
          "format": "int32"
        },
        "renderDeviceDriver": {
          "type": [
            "string",
            "null"
          ],
          "description": "Name of the render device driver used by the media endpoint."
        },
        "renderDeviceName": {
          "type": [
            "string",
            "null"
          ],
          "description": "Name of the render device used by the media endpoint."
        },
        "renderMuteEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that media endpoint detected device render is muted."
        },
        "renderNotFunctioningEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected the render device was not working properly."
        },
        "renderZeroVolumeEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that media endpoint detected device render volume is set to 0."
        },
        "sentNoiseLevel": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "Average energy level of sent audio for audio classified as mono noise or left channel of stereo noise by the media endpoint.",
          "format": "int32"
        },
        "sentSignalLevel": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "Average energy level of sent audio for audio classified as mono speech, or left channel of stereo speech by the media endpoint.",
          "format": "int32"
        },
        "speakerGlitchRate": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Glitches per 5 minute internal for the media endpoint's loudspeaker."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.callRecords.endpoint": {
      "title": "endpoint",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "userAgent": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.callRecords.userAgent"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "User-agent reported by this endpoint."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.callRecords.failureInfo": {
      "title": "failureInfo",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "reason": {
          "type": [
            "string",
            "null"
          ],
          "description": "Classification of why a call or portion of a call failed."
        },
        "stage": {
          "$ref": "#/$defs/microsoft.graph.callRecords.failureStage"
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.callRecords.failureStage": {
      "title": "failureStage",
      "enum": [
        "unknown",
        "callSetup",
        "midcall",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.callRecords.media": {
      "title": "media",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "calleeDevice": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.callRecords.deviceInfo"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Device information associated with the callee endpoint of this media."
        },
        "calleeNetwork": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.callRecords.networkInfo"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Network information associated with the callee endpoint of this media."
        },
        "callerDevice": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.callRecords.deviceInfo"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Device information associated with the caller endpoint of this media."
        },
        "callerNetwork": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.callRecords.networkInfo"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Network information associated with the caller endpoint of this media."
        },
        "label": {
          "type": [
            "string",
            "null"
          ],
          "description": "How the media was identified during media negotiation stage."
        },
        "streams": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.callRecords.mediaStream"
          },
          "description": "Network streams associated with this media."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.callRecords.mediaStream": {
      "title": "mediaStream",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "audioCodec": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.callRecords.audioCodec"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Codec name used to encode audio for transmission on the network. The possible values are: unknown, invalid, cn, pcma, pcmu, amrWide, g722, g7221, g7221c, g729, multiChannelAudio, muchv2, opus, satin, satinFullband, rtAudio8, rtAudio16, silk, silkNarrow, silkWide, siren, xmsRta, unknownFutureValue."
        },
        "averageAudioDegradation": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Average Network Mean Opinion Score degradation for stream. Represents how much the network loss and jitter has impacted the quality of received audio."
        },
        "averageAudioNetworkJitter": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": [
            "string",
            "null"
          ],
          "description": "Average jitter for the stream computed as specified in RFC 3550, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.",
          "format": "duration"
        },
        "averageBandwidthEstimate": {
          "type": [
            "number",
            "null"
          ],
          "description": "Average estimated bandwidth available between two endpoints in bits per second.",
          "format": "int64"
        },
        "averageFreezeDuration": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": [
            "string",
            "null"
          ],
          "description": "Average duration of the received freezing time in the video stream.",
          "format": "duration"
        },
        "averageJitter": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": [
            "string",
            "null"
          ],
          "description": "Average jitter for the stream computed as specified in RFC 3550, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.",
          "format": "duration"
        },
        "averagePacketLossRate": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Average packet loss rate for stream."
        },
        "averageRatioOfConcealedSamples": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Ratio of the number of audio frames with samples generated by packet loss concealment to the total number of audio frames."
        },
        "averageReceivedFrameRate": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Average frames per second received for all video streams computed over the duration of the session."
        },
        "averageRoundTripTime": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": [
            "string",
            "null"
          ],
          "description": "Average network propagation round-trip time computed as specified in RFC 3550, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.",
          "format": "duration"
        },
        "averageVideoFrameLossPercentage": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Average percentage of video frames lost as displayed to the user."
        },
        "averageVideoFrameRate": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Average frames per second received for a video stream, computed over the duration of the session."
        },
        "averageVideoPacketLossRate": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Average fraction of packets lost, as specified in RFC 3550, computed over the duration of the session."
        },
        "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": "UTC time when the stream ended. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. This field is only available for streams that use the SIP protocol.",
          "format": "date-time"
        },
        "isAudioForwardErrorCorrectionUsed": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the forward error correction (FEC) was used at some point during the session. The default value is null."
        },
        "lowFrameRateRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call where frame rate is less than 7.5 frames per second."
        },
        "lowVideoProcessingCapabilityRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the client is running less than 70% expected video processing capability."
        },
        "maxAudioNetworkJitter": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": [
            "string",
            "null"
          ],
          "description": "Maximum of audio network jitter computed over each of the 20 second windows during the session, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.",
          "format": "duration"
        },
        "maxJitter": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": [
            "string",
            "null"
          ],
          "description": "Maximum jitter for the stream computed as specified in RFC 3550, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.",
          "format": "duration"
        },
        "maxPacketLossRate": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Maximum packet loss rate for the stream."
        },
        "maxRatioOfConcealedSamples": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Maximum ratio of packets concealed by the healer."
        },
        "maxRoundTripTime": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": [
            "string",
            "null"
          ],
          "description": "Maximum network propagation round-trip time computed as specified in RFC 3550, denoted in ISO 8601 format. For example, 1 second is denoted as 'PT1S', where 'P' is the duration designator, 'T' is the time designator, and 'S' is the second designator.",
          "format": "duration"
        },
        "packetUtilization": {
          "type": [
            "number",
            "null"
          ],
          "description": "Packet count for the stream.",
          "format": "int64"
        },
        "postForwardErrorCorrectionPacketLossRate": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Packet loss rate after FEC has been applied aggregated across all video streams and codecs."
        },
        "rmsFreezeDuration": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": [
            "string",
            "null"
          ],
          "description": "Average duration of the received freezing time in the video stream represented in root mean square.",
          "format": "duration"
        },
        "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",
            "null"
          ],
          "description": "UTC time when the stream started. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. This field is only available for streams that use the SIP protocol.",
          "format": "date-time"
        },
        "streamDirection": {
          "$ref": "#/$defs/microsoft.graph.callRecords.mediaStreamDirection"
        },
        "streamId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier for the stream."
        },
        "videoCodec": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.callRecords.videoCodec"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Codec name used to encode video for transmission on the network. The possible values are: unknown, invalid, av1, h263, h264, h264s, h264uc, h265, rtvc1, rtVideo, xrtvc1, unknownFutureValue."
        },
        "wasMediaBypassed": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "True if the media stream bypassed the Mediation Server and went straight between client and PSTN Gateway/PBX, false otherwise."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.callRecords.mediaStreamDirection": {
      "title": "mediaStreamDirection",
      "enum": [
        "callerToCallee",
        "calleeToCaller"
      ],
      "type": "string"
    },
    "microsoft.graph.callRecords.modality": {
      "title": "modality",
      "enum": [
        "audio",
        "video",
        "videoBasedScreenSharing",
        "data",
        "screenSharing",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.callRecords.networkConnectionType": {
      "title": "networkConnectionType",
      "enum": [
        "unknown",
        "wired",
        "wifi",
        "mobile",
        "tunnel",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.callRecords.networkInfo": {
      "title": "networkInfo",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "bandwidthLowEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected the available bandwidth or bandwidth policy was low enough to cause poor quality of the audio sent."
        },
        "basicServiceSetIdentifier": {
          "type": [
            "string",
            "null"
          ],
          "description": "The wireless LAN basic service set identifier of the media endpoint used to connect to the network. This property isn't available if the user disables precise location sharing in their operating system or Microsoft Teams app settings."
        },
        "connectionType": {
          "$ref": "#/$defs/microsoft.graph.callRecords.networkConnectionType"
        },
        "delayEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected the network delay was significant enough to impact the ability to have real-time two-way communication."
        },
        "dnsSuffix": {
          "type": [
            "string",
            "null"
          ],
          "description": "DNS suffix associated with the network adapter of the media endpoint."
        },
        "ipAddress": {
          "type": [
            "string",
            "null"
          ],
          "description": "IP address of the media endpoint."
        },
        "linkSpeed": {
          "type": [
            "number",
            "null"
          ],
          "description": "Link speed in bits per second reported by the network adapter used by the media endpoint.",
          "format": "int64"
        },
        "macAddress": {
          "type": [
            "string",
            "null"
          ],
          "description": "The media access control (MAC) address of the media endpoint's network device. This value may be missing or shown as 02:00:00:00:00:00 due to operating system privacy policies."
        },
        "networkTransportProtocol": {
          "$ref": "#/$defs/microsoft.graph.callRecords.networkTransportProtocol"
        },
        "port": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "Network port number used by media endpoint.",
          "format": "int32"
        },
        "receivedQualityEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected the network was causing poor quality of the audio received."
        },
        "reflexiveIPAddress": {
          "type": [
            "string",
            "null"
          ],
          "description": "IP address of the media endpoint as seen by the media relay server. This is typically the public internet IP address associated to the endpoint."
        },
        "relayIPAddress": {
          "type": [
            "string",
            "null"
          ],
          "description": "IP address of the media relay server allocated by the media endpoint."
        },
        "relayPort": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "Network port number allocated on the media relay server by the media endpoint.",
          "format": "int32"
        },
        "sentQualityEventRatio": {
          "oneOf": [
            {
              "type": [
                "number",
                "null"
              ],
              "format": "float"
            },
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "$ref": "#/$defs/ReferenceNumeric"
            }
          ],
          "description": "Fraction of the call that the media endpoint detected the network was causing poor quality of the audio sent."
        },
        "subnet": {
          "type": [
            "string",
            "null"
          ],
          "description": "Subnet used for media stream by the media endpoint."
        },
        "traceRouteHops": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.callRecords.traceRouteHop"
          },
          "description": "List of network trace route hops collected for this media stream.*"
        },
        "wifiBand": {
          "$ref": "#/$defs/microsoft.graph.callRecords.wifiBand"
        },
        "wifiBatteryCharge": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "Estimated remaining battery charge in percentage reported by the media endpoint.",
          "format": "int32"
        },
        "wifiChannel": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "WiFi channel used by the media endpoint.",
          "format": "int32"
        },
        "wifiMicrosoftDriver": {
          "type": [
            "string",
            "null"
          ],
          "description": "Name of the Microsoft WiFi driver used by the media endpoint. Value may be localized based on the language used by endpoint."
        },
        "wifiMicrosoftDriverVersion": {
          "type": [
            "string",
            "null"
          ],
          "description": "Version of the Microsoft WiFi driver used by the media endpoint."
        },
        "wifiRadioType": {
          "$ref": "#/$defs/microsoft.graph.callRecords.wifiRadioType"
        },
        "wifiSignalStrength": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "WiFi signal strength in percentage reported by the media endpoint.",
          "format": "int32"
        },
        "wifiVendorDriver": {
          "type": [
            "string",
            "null"
          ],
          "description": "Name of the WiFi driver used by the media endpoint. Value may be localized based on the language used by endpoint."
        },
        "wifiVendorDriverVersion": {
          "type": [
            "string",
            "null"
          ],
          "description": "Version of the WiFi driver used by the media endpoint."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.callRecords.networkTransportProtocol": {
      "title": "networkTransportProtocol",
      "enum": [
        "unknown",
        "udp",
        "tcp",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.callRecords.organizer": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.callRecords.participantBase"
        },
        {
          "title": "organizer",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "@odata.type": {
              "type": "string",
              "default": "#microsoft.graph.callRecords.organizer"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.callRecords.organizer"
    },
    "microsoft.graph.callRecords.participant": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.callRecords.participantBase"
        },
        {
          "title": "participant",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "@odata.type": {
              "type": "string",
              "default": "#microsoft.graph.callRecords.participant"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.callRecords.participant"
    },
    "microsoft.graph.callRecords.participantBase": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "participantBase",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "administrativeUnitInfos": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.callRecords.administrativeUnitInfo"
              },
              "description": "List of administrativeUnitInfo objects for the call participant."
            },
            "identity": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.communicationsIdentitySet"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The identity of the call participant."
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ]
    },
    "microsoft.graph.callRecords.segment": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "segment",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "callee": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.callRecords.endpoint"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "Endpoint that answered this segment."
            },
            "caller": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.callRecords.endpoint"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "Endpoint that initiated this segment."
            },
            "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",
              "description": "UTC time when the segment ended. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
              "format": "date-time"
            },
            "failureInfo": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.callRecords.failureInfo"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "Failure information associated with the segment if it failed."
            },
            "media": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.callRecords.media"
              },
              "description": "Media associated with this segment."
            },
            "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": "UTC time when the segment started. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
              "format": "date-time"
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.callRecords.segment"
    },
    "microsoft.graph.callRecords.session": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "session",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "callee": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.callRecords.endpoint"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "Endpoint that answered the session."
            },
            "caller": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.callRecords.endpoint"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "Endpoint that initiated the session."
            },
            "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",
              "description": "UTC time when the last user left the session. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
              "format": "date-time"
            },
            "failureInfo": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.callRecords.failureInfo"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "Failure information associated with the session if the session failed."
            },
            "isTest": {
              "type": [
                "boolean",
                "null"
              ],
              "description": "Specifies whether the session is a test."
            },
            "modalities": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.callRecords.modality"
              },
              "description": "List of modalities present in the session. The possible values are: unknown, audio, video, videoBasedScreenSharing, data, screenSharing, unknownFutureValue."
            },
            "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": "UTC time when the first user joined the session. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
              "format": "date-time"
            },
            "segments": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/microsoft.graph.callRecords.segment"
              },
              "description": "The list of segments involved in the session. Read-only. Nullable.",
              "x-ms-navigationProperty": true
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.callRecords.session"
    },
    "microsoft.graph.callRecords.traceRouteHop": {
      "title": "traceRouteHop",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "hopCount": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "The network path count of this hop that was used to compute the RTT.",
          "format": "int32"
        },
        "ipAddress": {
          "type": [
            "string",
            "null"
          ],
          "description": "IP address used for this hop in the network trace."
        },
        "roundTripTime": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": [
            "string",
            "null"
          ],
          "description": "The time from when the trace route packet was sent from the client to this hop and back to the client, denoted in ISO 8601 format. For example, 1 second is denoted as PT1S, where P is the duration designator, T is the time designator, and S is the second designator.",
          "format": "duration"
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.callRecords.userAgent": {
      "title": "userAgent",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "applicationVersion": {
          "type": [
            "string",
            "null"
          ],
          "description": "Identifies the version of application software used by this endpoint."
        },
        "headerValue": {
          "type": [
            "string",
            "null"
          ],
          "description": "User-agent header value reported by this endpoint."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.callRecords.videoCodec": {
      "title": "videoCodec",
      "enum": [
        "unknown",
        "invalid",
        "av1",
        "h263",
        "h264",
        "h264s",
        "h264uc",
        "h265",
        "rtvc1",
        "rtVideo",
        "xrtvc1",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.callRecords.wifiBand": {
      "title": "wifiBand",
      "enum": [
        "unknown",
        "frequency24GHz",
        "frequency50GHz",
        "frequency60GHz",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.callRecords.wifiRadioType": {
      "title": "wifiRadioType",
      "enum": [
        "unknown",
        "wifi80211a",
        "wifi80211b",
        "wifi80211g",
        "wifi80211n",
        "wifi80211ac",
        "wifi80211ax",
        "unknownFutureValue"
      ],
      "type": "string"
    },
    "microsoft.graph.communicationsIdentitySet": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.identitySet"
        },
        {
          "title": "communicationsIdentitySet",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "applicationInstance": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.identity"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The application instance associated with this action."
            },
            "assertedIdentity": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.identity"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "An identity the participant would like to present itself as to the other participants in the call."
            },
            "azureCommunicationServicesUser": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.identity"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The Azure Communication Services user associated with this action."
            },
            "encrypted": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.identity"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The encrypted user associated with this action."
            },
            "endpointType": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.endpointType"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "Type of endpoint that the participant uses. The possible values are: default, voicemail, skypeForBusiness, skypeForBusinessVoipPhone, unknownFutureValue."
            },
            "guest": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.identity"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The guest user associated with this action."
            },
            "onPremises": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.identity"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The Skype for Business on-premises user associated with this action."
            },
            "phone": {
              "anyOf": [
                {
                  "$ref": "#/$defs/microsoft.graph.identity"
                },
                {
                  "type": [
                    "object",
                    "null"
                  ]
                }
              ],
              "description": "The phone user associated with this action."
            },
            "@odata.type": {
              "type": "string",
              "default": "#microsoft.graph.communicationsIdentitySet"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.communicationsIdentitySet"
    },
    "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"
        }
      }
    }
  }
}