export const schema = {
  "type": "record",
  "name": "SfuInboundRtpPadReport",
  "namespace": "org.observertc.schemas.reports",
  "doc": "A Report created for RTP streams going through the SFU",
  "fields": [
    {
      "name": "serviceId",
      "doc": "The service id the report belongs to",
      "type": "string"
    },
    {
      "name": "mediaUnitId",
      "doc": "The media unit id the report belongs to",
      "type": "string"
    },
    {
      "name": "sfuId",
      "doc": "The provided unique identifier of the SFU",
      "type": "string"
    },
    {
      "name": "marker",
      "doc": "The marker the originated sample is reported with",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "internal",
      "doc": "Flag indicate if the sfu rtp pad is used as an internal rtp session between SFUs",
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    {
      "name": "timestamp",
      "doc": "The timestamp when the corresponded data is generated for the report (UTC Epoch in ms)",
      "type": "long"
    },
    {
      "name": "remoteSfuId",
      "doc": "only added if it is internal. The id of the remote Sfu that outbound rtp pad matched with this internal inbound rtp pad",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "remoteTransportId",
      "doc": "only added if it is internal. The id of the remote transportId that outbound rtp pad matched with this internal inbound rtp pad",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "remoteSinkId",
      "doc": "only added if it is internal. The id of the remote sinkId that outbound rtp pad matched with this internal inbound rtp pad",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "remoteRtpPadId",
      "doc": "only added if it is internal. The id of the remote outbound rtp pad matched with this internal inbound rtp pad",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "transportId",
      "doc": "The id of the transport the RTP stream uses.",
      "type": "string"
    },
    {
      "name": "sfuStreamId",
      "doc": "Unique identifier of the Sfu stream the event is related to",
      "type": "string"
    },
    {
      "name": "rtpPadId",
      "doc": "The id of RTP pad.",
      "type": "string"
    },
    {
      "name": "ssrc",
      "doc": "The synchronization source id of the RTP stream",
      "type": "long"
    },
    {
      "name": "trackId",
      "doc": "The id of the track the RTP stream related to at the client side",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "clientId",
      "doc": "If the track id was provided by the Sfu, the observer can fill up the information of which client it belongs to",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "callId",
      "doc": "The callId the event belongs to",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "mediaType",
      "doc": "the type of the media the stream carries (\"audio\" or \"video\")",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "payloadType",
      "doc": "The payload type field of the RTP header",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "mimeType",
      "doc": "The negotiated mimeType in the SDP",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "clockRate",
      "doc": "The clock rate of the media source the RTP header carries",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "sdpFmtpLine",
      "doc": "The actual SDP line from the negotiation related to this RTP stream",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "rid",
      "doc": " The rid parameter of the corresponded RTP stream",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "rtxSsrc",
      "doc": "If RTX is negotiated as a separate stream, this is the SSRC of the RTX stream that is associated with this stream's ssrc. ",
      "type": [
        "null",
        "long"
      ],
      "default": null
    },
    {
      "name": "targetBitrate",
      "doc": "he bitrate the corresponded stream targets.",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "voiceActivityFlag",
      "doc": "The RTP header V flag indicate of the activity of the media source by the media codec if the RTP transport ships it through",
      "type": [
        "null",
        "boolean"
      ],
      "default": null
    },
    {
      "name": "firCount",
      "doc": "The total number FIR packets sent from this endpoint to the source on the corresponded RTP stream. Only for Video streams",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "pliCount",
      "doc": "The total number of Picture Loss Indication sent on the corresponded RTP stream. Only for Video streams",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "nackCount",
      "doc": "The total number of negative acknowledgement received on the corresponded RTP stream.",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "sliCount",
      "doc": "The total number of SLI indicator sent from the endpoint on the corresponded RTP stream. Only for Audio stream",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "packetsLost",
      "doc": "The total number of packets lost on the corresponded RTP stream.",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "packetsReceived",
      "doc": "The total number of packets received on the corresponded RTP stream.",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "packetsDiscarded",
      "doc": "The total number of discarded packets on the corresponded RTP stream.",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "packetsRepaired",
      "doc": "The total number of packets repaired by either retransmission or FEC on the corresponded RTP stream.",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "packetsFailedDecryption",
      "doc": "The total number of packets failed to be decrypted on the corresponded RTP stream.",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "packetsDuplicated",
      "doc": "The total number of duplicated packets appeared on the corresponded RTP stream.",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "fecPacketsReceived",
      "doc": "The total number of FEC packets received on the corresponded RTP stream.",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "fecPacketsDiscarded",
      "doc": "The total number of FEC packets discarded on the corresponded RTP stream.",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "bytesReceived",
      "doc": "The total amount of payload bytes received on the corresponded RTP stream.",
      "type": [
        "null",
        "long"
      ],
      "default": null
    },
    {
      "name": "rtcpSrReceived",
      "doc": "The total number of SR reports received by the corresponded RTP stream",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "rtcpRrSent",
      "doc": "The total number of RR reports sent on the corresponded RTP stream",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "rtxPacketsReceived",
      "doc": "If rtx packets are sent or received on the same stream then this number indicates how may has been sent",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "rtxPacketsDiscarded",
      "doc": "If rtx packets are received on the same stream then this number indicates how may has been discarded",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "framesReceived",
      "doc": "The number of frames received on the corresponded RTP stream",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "framesDecoded",
      "doc": "Indicate the number of frames the Sfu has been decoded",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "keyFramesDecoded",
      "doc": "Indicate the number of keyframes the Sfu has been decoded",
      "type": [
        "null",
        "int"
      ],
      "default": null
    },
    {
      "name": "fractionLost",
      "doc": "The calculated fractionLost of the stream",
      "type": [
        "null",
        "double"
      ],
      "default": null
    },
    {
      "name": "jitter",
      "doc": "The calculated jitter of the stream",
      "type": [
        "null",
        "double"
      ],
      "default": null
    },
    {
      "name": "roundTripTime",
      "doc": "The calculated RTT of the stream",
      "type": [
        "null",
        "double"
      ],
      "default": null
    }
  ]
}