namespace Gripper.ChromeDevTools.Network
{
    using Newtonsoft.Json;

    /// <summary>
    /// An object representing a report generated by the Reporting API.
    /// </summary>
    public sealed class ReportingApiReport
    {
        /// <summary>
        /// id
        ///</summary>
        [JsonProperty("id")]
        public string Id
        {
            get;
            set;
        }
        /// <summary>
        /// The URL of the document that triggered the report.
        ///</summary>
        [JsonProperty("initiatorUrl")]
        public string InitiatorUrl
        {
            get;
            set;
        }
        /// <summary>
        /// The name of the endpoint group that should be used to deliver the report.
        ///</summary>
        [JsonProperty("destination")]
        public string Destination
        {
            get;
            set;
        }
        /// <summary>
        /// The type of the report (specifies the set of data that is contained in the report body).
        ///</summary>
        [JsonProperty("type")]
        public string Type
        {
            get;
            set;
        }
        /// <summary>
        /// When the report was generated.
        ///</summary>
        [JsonProperty("timestamp")]
        public double Timestamp
        {
            get;
            set;
        }
        /// <summary>
        /// How many uploads deep the related request was.
        ///</summary>
        [JsonProperty("depth")]
        public long Depth
        {
            get;
            set;
        }
        /// <summary>
        /// The number of delivery attempts made so far, not including an active attempt.
        ///</summary>
        [JsonProperty("completedAttempts")]
        public long CompletedAttempts
        {
            get;
            set;
        }
        /// <summary>
        /// body
        ///</summary>
        [JsonProperty("body")]
        public object Body
        {
            get;
            set;
        }
        /// <summary>
        /// status
        ///</summary>
        [JsonProperty("status")]
        public ReportStatus Status
        {
            get;
            set;
        }
    }
}