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

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

    /**
     * The duration of the availability result.
     */
    @JsonProperty(value = "duration")
    private Long duration;

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

    /**
     * The message of the availability result.
     */
    @JsonProperty(value = "message")
    private String message;

    /**
     * The location of the availability result.
     */
    @JsonProperty(value = "location")
    private String location;

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

    /**
     * The size of the availability result.
     */
    @JsonProperty(value = "size")
    private String size;

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

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

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

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

    /**
     * Get the duration of the availability result.
     *
     * @return the duration value
     */
    public Long duration() {
        return this.duration;
    }

    /**
     * Set the duration of the availability result.
     *
     * @param duration the duration value to set
     * @return the EventsAvailabilityResultInfo object itself.
     */
    public EventsAvailabilityResultInfo withDuration(Long duration) {
        this.duration = duration;
        return this;
    }

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

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

    /**
     * Get the message of the availability result.
     *
     * @return the message value
     */
    public String message() {
        return this.message;
    }

    /**
     * Set the message of the availability result.
     *
     * @param message the message value to set
     * @return the EventsAvailabilityResultInfo object itself.
     */
    public EventsAvailabilityResultInfo withMessage(String message) {
        this.message = message;
        return this;
    }

    /**
     * Get the location of the availability result.
     *
     * @return the location value
     */
    public String location() {
        return this.location;
    }

    /**
     * Set the location of the availability result.
     *
     * @param location the location value to set
     * @return the EventsAvailabilityResultInfo object itself.
     */
    public EventsAvailabilityResultInfo withLocation(String location) {
        this.location = location;
        return this;
    }

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

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

    /**
     * Get the size of the availability result.
     *
     * @return the size value
     */
    public String size() {
        return this.size;
    }

    /**
     * Set the size of the availability result.
     *
     * @param size the size value to set
     * @return the EventsAvailabilityResultInfo object itself.
     */
    public EventsAvailabilityResultInfo withSize(String size) {
        this.size = size;
        return this;
    }

}
