// 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;
import java.util.List;

/** The body of the Trial Matcher request. */
@Fluent
public final class TrialMatcherData {
    /*
     * The list of patients, including their clinical information and data.
     */
    @JsonProperty(value = "patients", required = true)
    private List<PatientRecord> patients;

    /*
     * Configuration affecting the Trial Matcher model's inference.
     */
    @JsonProperty(value = "configuration")
    private TrialMatcherModelConfiguration configuration;

    /**
     * Creates an instance of TrialMatcherData class.
     *
     * @param patients the patients value to set.
     */
    @JsonCreator
    public TrialMatcherData(@JsonProperty(value = "patients", required = true) List<PatientRecord> patients) {
        this.patients = patients;
    }

    /**
     * Get the patients property: The list of patients, including their clinical information and data.
     *
     * @return the patients value.
     */
    public List<PatientRecord> getPatients() {
        return this.patients;
    }

    /**
     * Get the configuration property: Configuration affecting the Trial Matcher model's inference.
     *
     * @return the configuration value.
     */
    public TrialMatcherModelConfiguration getConfiguration() {
        return this.configuration;
    }

    /**
     * Set the configuration property: Configuration affecting the Trial Matcher model's inference.
     *
     * @param configuration the configuration value to set.
     * @return the TrialMatcherData object itself.
     */
    public TrialMatcherData setConfiguration(TrialMatcherModelConfiguration configuration) {
        this.configuration = configuration;
        return this;
    }
}
