/**
 * 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 request info.
 */
public class EventsRequestInfo {
    /**
     * The name of the request.
     */
    @JsonProperty(value = "name")
    private String name;

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

    /**
     * Indicates if the request was successful.
     */
    @JsonProperty(value = "success")
    private String success;

    /**
     * The duration of the request.
     */
    @JsonProperty(value = "duration")
    private Double duration;

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

    /**
     * The result code of the request.
     */
    @JsonProperty(value = "resultCode")
    private String resultCode;

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

    /**
     * The ID of the request.
     */
    @JsonProperty(value = "id")
    private String id;

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

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

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

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

    /**
     * Get indicates if the request was successful.
     *
     * @return the success value
     */
    public String success() {
        return this.success;
    }

    /**
     * Set indicates if the request was successful.
     *
     * @param success the success value to set
     * @return the EventsRequestInfo object itself.
     */
    public EventsRequestInfo withSuccess(String success) {
        this.success = success;
        return this;
    }

    /**
     * Get the duration of the request.
     *
     * @return the duration value
     */
    public Double duration() {
        return this.duration;
    }

    /**
     * Set the duration of the request.
     *
     * @param duration the duration value to set
     * @return the EventsRequestInfo object itself.
     */
    public EventsRequestInfo withDuration(Double duration) {
        this.duration = duration;
        return this;
    }

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

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

    /**
     * Get the result code of the request.
     *
     * @return the resultCode value
     */
    public String resultCode() {
        return this.resultCode;
    }

    /**
     * Set the result code of the request.
     *
     * @param resultCode the resultCode value to set
     * @return the EventsRequestInfo object itself.
     */
    public EventsRequestInfo withResultCode(String resultCode) {
        this.resultCode = resultCode;
        return this;
    }

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

    /**
     * Set the source of the request.
     *
     * @param source the source value to set
     * @return the EventsRequestInfo object itself.
     */
    public EventsRequestInfo withSource(String source) {
        this.source = source;
        return this;
    }

    /**
     * Get the ID of the request.
     *
     * @return the id value
     */
    public String id() {
        return this.id;
    }

    /**
     * Set the ID of the request.
     *
     * @param id the id value to set
     * @return the EventsRequestInfo object itself.
     */
    public EventsRequestInfo withId(String id) {
        this.id = id;
        return this;
    }

}
