/**
 * 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.cognitiveservices.vision.customvision.training.models;

import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * Represents the detailed performance data for a trained iteration.
 */
public class IterationPerformance {
    /**
     * Gets the per-tag performance details for this iteration.
     */
    @JsonProperty(value = "perTagPerformance", access = JsonProperty.Access.WRITE_ONLY)
    private List<TagPerformance> perTagPerformance;

    /**
     * Gets the precision.
     */
    @JsonProperty(value = "precision", access = JsonProperty.Access.WRITE_ONLY)
    private double precision;

    /**
     * Gets the standard deviation for the precision.
     */
    @JsonProperty(value = "precisionStdDeviation", access = JsonProperty.Access.WRITE_ONLY)
    private double precisionStdDeviation;

    /**
     * Gets the recall.
     */
    @JsonProperty(value = "recall", access = JsonProperty.Access.WRITE_ONLY)
    private double recall;

    /**
     * Gets the standard deviation for the recall.
     */
    @JsonProperty(value = "recallStdDeviation", access = JsonProperty.Access.WRITE_ONLY)
    private double recallStdDeviation;

    /**
     * Gets the average precision when applicable.
     */
    @JsonProperty(value = "averagePrecision", access = JsonProperty.Access.WRITE_ONLY)
    private Double averagePrecision;

    /**
     * Get the perTagPerformance value.
     *
     * @return the perTagPerformance value
     */
    public List<TagPerformance> perTagPerformance() {
        return this.perTagPerformance;
    }

    /**
     * Get the precision value.
     *
     * @return the precision value
     */
    public double precision() {
        return this.precision;
    }

    /**
     * Get the precisionStdDeviation value.
     *
     * @return the precisionStdDeviation value
     */
    public double precisionStdDeviation() {
        return this.precisionStdDeviation;
    }

    /**
     * Get the recall value.
     *
     * @return the recall value
     */
    public double recall() {
        return this.recall;
    }

    /**
     * Get the recallStdDeviation value.
     *
     * @return the recallStdDeviation value
     */
    public double recallStdDeviation() {
        return this.recallStdDeviation;
    }

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

}
