// 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.Immutable;
import com.azure.core.models.ResponseError;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.OffsetDateTime;
import java.util.List;

/** The response for the Trial Matcher request. */
@Immutable
public final class TrialMatcherResult {
    /*
     * A processing job identifier.
     */
    @JsonProperty(value = "jobId", required = true, access = JsonProperty.Access.WRITE_ONLY)
    private String jobId;

    /*
     * The date and time when the processing job was created.
     */
    @JsonProperty(value = "createdDateTime", required = true, access = JsonProperty.Access.WRITE_ONLY)
    private OffsetDateTime createdDateTime;

    /*
     * The date and time when the processing job is set to expire.
     */
    @JsonProperty(value = "expirationDateTime", required = true, access = JsonProperty.Access.WRITE_ONLY)
    private OffsetDateTime expirationDateTime;

    /*
     * The date and time when the processing job was last updated.
     */
    @JsonProperty(value = "lastUpdateDateTime", required = true, access = JsonProperty.Access.WRITE_ONLY)
    private OffsetDateTime lastUpdateDateTime;

    /*
     * The status of the processing job.
     */
    @JsonProperty(value = "status", required = true, access = JsonProperty.Access.WRITE_ONLY)
    private JobStatus status;

    /*
     * An array of errors, if any errors occurred during the processing job.
     */
    @JsonProperty(value = "errors", access = JsonProperty.Access.WRITE_ONLY)
    private List<ResponseError> errors;

    /*
     * The inference results for the Trial Matcher request.
     */
    @JsonProperty(value = "results", access = JsonProperty.Access.WRITE_ONLY)
    private TrialMatcherResults results;

    /** Creates an instance of TrialMatcherResult class. */
    private TrialMatcherResult() {}

    /**
     * Get the jobId property: A processing job identifier.
     *
     * @return the jobId value.
     */
    public String getJobId() {
        return this.jobId;
    }

    /**
     * Get the createdDateTime property: The date and time when the processing job was created.
     *
     * @return the createdDateTime value.
     */
    public OffsetDateTime getCreatedDateTime() {
        return this.createdDateTime;
    }

    /**
     * Get the expirationDateTime property: The date and time when the processing job is set to expire.
     *
     * @return the expirationDateTime value.
     */
    public OffsetDateTime getExpirationDateTime() {
        return this.expirationDateTime;
    }

    /**
     * Get the lastUpdateDateTime property: The date and time when the processing job was last updated.
     *
     * @return the lastUpdateDateTime value.
     */
    public OffsetDateTime getLastUpdateDateTime() {
        return this.lastUpdateDateTime;
    }

    /**
     * Get the status property: The status of the processing job.
     *
     * @return the status value.
     */
    public JobStatus getStatus() {
        return this.status;
    }

    /**
     * Get the errors property: An array of errors, if any errors occurred during the processing job.
     *
     * @return the errors value.
     */
    public List<ResponseError> getErrors() {
        return this.errors;
    }

    /**
     * Get the results property: The inference results for the Trial Matcher request.
     *
     * @return the results value.
     */
    public TrialMatcherResults getResults() {
        return this.results;
    }
}
