// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.health.insights.clinicalmatching.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;

/** Configuration affecting the Trial Matcher model's inference. */
@Fluent
public final class TrialMatcherModelConfiguration {
    /*
     * An indication whether the model should produce verbose output.
     */
    @JsonProperty(value = "verbose")
    private Boolean verbose;

    /*
     * An indication whether the model's output should include evidence for the inferences.
     */
    @JsonProperty(value = "includeEvidence")
    private Boolean includeEvidence;

    /*
     * The clinical trials that the patient(s) should be matched to. <br />The trial
     * selection can be given as a list of custom clinical trials and/or a list of
     * filters to known clinical trial registries. In case both are given, the
     * resulting trial set is a union of the two sets.
     */
    @JsonProperty(value = "clinicalTrials", required = true)
    private ClinicalTrials clinicalTrials;

    /**
     * Creates an instance of TrialMatcherModelConfiguration class.
     *
     * @param clinicalTrials the clinicalTrials value to set.
     */
    @JsonCreator
    public TrialMatcherModelConfiguration(
            @JsonProperty(value = "clinicalTrials", required = true) ClinicalTrials clinicalTrials) {
        this.clinicalTrials = clinicalTrials;
    }

    /**
     * Get the verbose property: An indication whether the model should produce verbose output.
     *
     * @return the verbose value.
     */
    public Boolean isVerbose() {
        return this.verbose;
    }

    /**
     * Set the verbose property: An indication whether the model should produce verbose output.
     *
     * @param verbose the verbose value to set.
     * @return the TrialMatcherModelConfiguration object itself.
     */
    public TrialMatcherModelConfiguration setVerbose(Boolean verbose) {
        this.verbose = verbose;
        return this;
    }

    /**
     * Get the includeEvidence property: An indication whether the model's output should include evidence for the
     * inferences.
     *
     * @return the includeEvidence value.
     */
    public Boolean isIncludeEvidence() {
        return this.includeEvidence;
    }

    /**
     * Set the includeEvidence property: An indication whether the model's output should include evidence for the
     * inferences.
     *
     * @param includeEvidence the includeEvidence value to set.
     * @return the TrialMatcherModelConfiguration object itself.
     */
    public TrialMatcherModelConfiguration setIncludeEvidence(Boolean includeEvidence) {
        this.includeEvidence = includeEvidence;
        return this;
    }

    /**
     * Get the clinicalTrials property: The clinical trials that the patient(s) should be matched to. &lt;br /&gt;The
     * trial selection can be given as a list of custom clinical trials and/or a list of filters to known clinical trial
     * registries. In case both are given, the resulting trial set is a union of the two sets.
     *
     * @return the clinicalTrials value.
     */
    public ClinicalTrials getClinicalTrials() {
        return this.clinicalTrials;
    }
}
