/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for
 * license information.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 */

package com.microsoft.azure.applicationinsights.query.models;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * The browser timing information.
 */
public class EventsBrowserTimingInfo {
    /**
     * The path of the URL.
     */
    @JsonProperty(value = "urlPath")
    private String urlPath;

    /**
     * The host of the URL.
     */
    @JsonProperty(value = "urlHost")
    private String urlHost;

    /**
     * The name of the page.
     */
    @JsonProperty(value = "name")
    private String name;

    /**
     * The url of the page.
     */
    @JsonProperty(value = "url")
    private String url;

    /**
     * The total duration of the load.
     */
    @JsonProperty(value = "totalDuration")
    private Long totalDuration;

    /**
     * The performance bucket of the load.
     */
    @JsonProperty(value = "performanceBucket")
    private String performanceBucket;

    /**
     * The network duration of the load.
     */
    @JsonProperty(value = "networkDuration")
    private Long networkDuration;

    /**
     * The send duration of the load.
     */
    @JsonProperty(value = "sendDuration")
    private Long sendDuration;

    /**
     * The receive duration of the load.
     */
    @JsonProperty(value = "receiveDuration")
    private Long receiveDuration;

    /**
     * The processing duration of the load.
     */
    @JsonProperty(value = "processingDuration")
    private Long processingDuration;

    /**
     * Get the path of the URL.
     *
     * @return the urlPath value
     */
    public String urlPath() {
        return this.urlPath;
    }

    /**
     * Set the path of the URL.
     *
     * @param urlPath the urlPath value to set
     * @return the EventsBrowserTimingInfo object itself.
     */
    public EventsBrowserTimingInfo withUrlPath(String urlPath) {
        this.urlPath = urlPath;
        return this;
    }

    /**
     * Get the host of the URL.
     *
     * @return the urlHost value
     */
    public String urlHost() {
        return this.urlHost;
    }

    /**
     * Set the host of the URL.
     *
     * @param urlHost the urlHost value to set
     * @return the EventsBrowserTimingInfo object itself.
     */
    public EventsBrowserTimingInfo withUrlHost(String urlHost) {
        this.urlHost = urlHost;
        return this;
    }

    /**
     * Get the name of the page.
     *
     * @return the name value
     */
    public String name() {
        return this.name;
    }

    /**
     * Set the name of the page.
     *
     * @param name the name value to set
     * @return the EventsBrowserTimingInfo object itself.
     */
    public EventsBrowserTimingInfo withName(String name) {
        this.name = name;
        return this;
    }

    /**
     * Get the url of the page.
     *
     * @return the url value
     */
    public String url() {
        return this.url;
    }

    /**
     * Set the url of the page.
     *
     * @param url the url value to set
     * @return the EventsBrowserTimingInfo object itself.
     */
    public EventsBrowserTimingInfo withUrl(String url) {
        this.url = url;
        return this;
    }

    /**
     * Get the total duration of the load.
     *
     * @return the totalDuration value
     */
    public Long totalDuration() {
        return this.totalDuration;
    }

    /**
     * Set the total duration of the load.
     *
     * @param totalDuration the totalDuration value to set
     * @return the EventsBrowserTimingInfo object itself.
     */
    public EventsBrowserTimingInfo withTotalDuration(Long totalDuration) {
        this.totalDuration = totalDuration;
        return this;
    }

    /**
     * Get the performance bucket of the load.
     *
     * @return the performanceBucket value
     */
    public String performanceBucket() {
        return this.performanceBucket;
    }

    /**
     * Set the performance bucket of the load.
     *
     * @param performanceBucket the performanceBucket value to set
     * @return the EventsBrowserTimingInfo object itself.
     */
    public EventsBrowserTimingInfo withPerformanceBucket(String performanceBucket) {
        this.performanceBucket = performanceBucket;
        return this;
    }

    /**
     * Get the network duration of the load.
     *
     * @return the networkDuration value
     */
    public Long networkDuration() {
        return this.networkDuration;
    }

    /**
     * Set the network duration of the load.
     *
     * @param networkDuration the networkDuration value to set
     * @return the EventsBrowserTimingInfo object itself.
     */
    public EventsBrowserTimingInfo withNetworkDuration(Long networkDuration) {
        this.networkDuration = networkDuration;
        return this;
    }

    /**
     * Get the send duration of the load.
     *
     * @return the sendDuration value
     */
    public Long sendDuration() {
        return this.sendDuration;
    }

    /**
     * Set the send duration of the load.
     *
     * @param sendDuration the sendDuration value to set
     * @return the EventsBrowserTimingInfo object itself.
     */
    public EventsBrowserTimingInfo withSendDuration(Long sendDuration) {
        this.sendDuration = sendDuration;
        return this;
    }

    /**
     * Get the receive duration of the load.
     *
     * @return the receiveDuration value
     */
    public Long receiveDuration() {
        return this.receiveDuration;
    }

    /**
     * Set the receive duration of the load.
     *
     * @param receiveDuration the receiveDuration value to set
     * @return the EventsBrowserTimingInfo object itself.
     */
    public EventsBrowserTimingInfo withReceiveDuration(Long receiveDuration) {
        this.receiveDuration = receiveDuration;
        return this;
    }

    /**
     * Get the processing duration of the load.
     *
     * @return the processingDuration value
     */
    public Long processingDuration() {
        return this.processingDuration;
    }

    /**
     * Set the processing duration of the load.
     *
     * @param processingDuration the processingDuration value to set
     * @return the EventsBrowserTimingInfo object itself.
     */
    public EventsBrowserTimingInfo withProcessingDuration(Long processingDuration) {
        this.processingDuration = processingDuration;
        return this;
    }

}
