/**
 * 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.computervision.models;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * OCR result of the read operation.
 */
public class ReadOperationResult {
    /**
     * Status of the read operation. Possible values include: 'notStarted',
     * 'running', 'failed', 'succeeded'.
     */
    @JsonProperty(value = "status")
    private OperationStatusCodes status;

    /**
     * Get UTC date time the batch operation was submitted.
     */
    @JsonProperty(value = "createdDateTime")
    private String createdDateTime;

    /**
     * Get last updated UTC date time of this batch operation.
     */
    @JsonProperty(value = "lastUpdatedDateTime")
    private String lastUpdatedDateTime;

    /**
     * Analyze batch operation result.
     */
    @JsonProperty(value = "analyzeResult")
    private AnalyzeResults analyzeResult;

    /**
     * Get the status value.
     *
     * @return the status value
     */
    public OperationStatusCodes status() {
        return this.status;
    }

    /**
     * Set the status value.
     *
     * @param status the status value to set
     * @return the ReadOperationResult object itself.
     */
    public ReadOperationResult withStatus(OperationStatusCodes status) {
        this.status = status;
        return this;
    }

    /**
     * Get the createdDateTime value.
     *
     * @return the createdDateTime value
     */
    public String createdDateTime() {
        return this.createdDateTime;
    }

    /**
     * Set the createdDateTime value.
     *
     * @param createdDateTime the createdDateTime value to set
     * @return the ReadOperationResult object itself.
     */
    public ReadOperationResult withCreatedDateTime(String createdDateTime) {
        this.createdDateTime = createdDateTime;
        return this;
    }

    /**
     * Get the lastUpdatedDateTime value.
     *
     * @return the lastUpdatedDateTime value
     */
    public String lastUpdatedDateTime() {
        return this.lastUpdatedDateTime;
    }

    /**
     * Set the lastUpdatedDateTime value.
     *
     * @param lastUpdatedDateTime the lastUpdatedDateTime value to set
     * @return the ReadOperationResult object itself.
     */
    public ReadOperationResult withLastUpdatedDateTime(String lastUpdatedDateTime) {
        this.lastUpdatedDateTime = lastUpdatedDateTime;
        return this;
    }

    /**
     * Get the analyzeResult value.
     *
     * @return the analyzeResult value
     */
    public AnalyzeResults analyzeResult() {
        return this.analyzeResult;
    }

    /**
     * Set the analyzeResult value.
     *
     * @param analyzeResult the analyzeResult value to set
     * @return the ReadOperationResult object itself.
     */
    public ReadOperationResult withAnalyzeResult(AnalyzeResults analyzeResult) {
        this.analyzeResult = analyzeResult;
        return this;
    }

}
