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

/**
 * The clinical trials that the patient(s) should be matched to. 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.
 */
@Fluent
public final class ClinicalTrials {
    /*
     * A list of clinical trials.
     */
    @JsonProperty(value = "customTrials")
    private List<ClinicalTrialDetails> customTrials;

    /*
     * A list of filters, each one creating a selection of trials from a given
     * clinical trial registry.
     */
    @JsonProperty(value = "registryFilters")
    private List<ClinicalTrialRegistryFilter> registryFilters;

    /** Creates an instance of ClinicalTrials class. */
    public ClinicalTrials() {}

    /**
     * Get the customTrials property: A list of clinical trials.
     *
     * @return the customTrials value.
     */
    public List<ClinicalTrialDetails> getCustomTrials() {
        return this.customTrials;
    }

    /**
     * Set the customTrials property: A list of clinical trials.
     *
     * @param customTrials the customTrials value to set.
     * @return the ClinicalTrials object itself.
     */
    public ClinicalTrials setCustomTrials(List<ClinicalTrialDetails> customTrials) {
        this.customTrials = customTrials;
        return this;
    }

    /**
     * Get the registryFilters property: A list of filters, each one creating a selection of trials from a given
     * clinical trial registry.
     *
     * @return the registryFilters value.
     */
    public List<ClinicalTrialRegistryFilter> getRegistryFilters() {
        return this.registryFilters;
    }

    /**
     * Set the registryFilters property: A list of filters, each one creating a selection of trials from a given
     * clinical trial registry.
     *
     * @param registryFilters the registryFilters value to set.
     * @return the ClinicalTrials object itself.
     */
    public ClinicalTrials setRegistryFilters(List<ClinicalTrialRegistryFilter> registryFilters) {
        this.registryFilters = registryFilters;
        return this;
    }
}
