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

package com.azure.analytics.synapse.spark.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.OffsetDateTime;

/** The SparkSessionState model. */
@Fluent
public final class SparkSessionState {
    /*
     * The notStartedAt property.
     */
    @JsonProperty(value = "notStartedAt")
    private OffsetDateTime notStartedAt;

    /*
     * The startingAt property.
     */
    @JsonProperty(value = "startingAt")
    private OffsetDateTime startingAt;

    /*
     * The idleAt property.
     */
    @JsonProperty(value = "idleAt")
    private OffsetDateTime idleAt;

    /*
     * The deadAt property.
     */
    @JsonProperty(value = "deadAt")
    private OffsetDateTime deadAt;

    /*
     * The shuttingDownAt property.
     */
    @JsonProperty(value = "shuttingDownAt")
    private OffsetDateTime shuttingDownAt;

    /*
     * The killedAt property.
     */
    @JsonProperty(value = "killedAt")
    private OffsetDateTime terminatedAt;

    /*
     * The recoveringAt property.
     */
    @JsonProperty(value = "recoveringAt")
    private OffsetDateTime recoveringAt;

    /*
     * The busyAt property.
     */
    @JsonProperty(value = "busyAt")
    private OffsetDateTime busyAt;

    /*
     * The errorAt property.
     */
    @JsonProperty(value = "errorAt")
    private OffsetDateTime errorAt;

    /*
     * The currentState property.
     */
    @JsonProperty(value = "currentState")
    private String currentState;

    /*
     * The jobCreationRequest property.
     */
    @JsonProperty(value = "jobCreationRequest")
    private SparkRequest jobCreationRequest;

    /**
     * Get the notStartedAt property: The notStartedAt property.
     *
     * @return the notStartedAt value.
     */
    public OffsetDateTime getNotStartedAt() {
        return this.notStartedAt;
    }

    /**
     * Set the notStartedAt property: The notStartedAt property.
     *
     * @param notStartedAt the notStartedAt value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setNotStartedAt(OffsetDateTime notStartedAt) {
        this.notStartedAt = notStartedAt;
        return this;
    }

    /**
     * Get the startingAt property: The startingAt property.
     *
     * @return the startingAt value.
     */
    public OffsetDateTime getStartingAt() {
        return this.startingAt;
    }

    /**
     * Set the startingAt property: The startingAt property.
     *
     * @param startingAt the startingAt value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setStartingAt(OffsetDateTime startingAt) {
        this.startingAt = startingAt;
        return this;
    }

    /**
     * Get the idleAt property: The idleAt property.
     *
     * @return the idleAt value.
     */
    public OffsetDateTime getIdleAt() {
        return this.idleAt;
    }

    /**
     * Set the idleAt property: The idleAt property.
     *
     * @param idleAt the idleAt value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setIdleAt(OffsetDateTime idleAt) {
        this.idleAt = idleAt;
        return this;
    }

    /**
     * Get the deadAt property: The deadAt property.
     *
     * @return the deadAt value.
     */
    public OffsetDateTime getDeadAt() {
        return this.deadAt;
    }

    /**
     * Set the deadAt property: The deadAt property.
     *
     * @param deadAt the deadAt value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setDeadAt(OffsetDateTime deadAt) {
        this.deadAt = deadAt;
        return this;
    }

    /**
     * Get the shuttingDownAt property: The shuttingDownAt property.
     *
     * @return the shuttingDownAt value.
     */
    public OffsetDateTime getShuttingDownAt() {
        return this.shuttingDownAt;
    }

    /**
     * Set the shuttingDownAt property: The shuttingDownAt property.
     *
     * @param shuttingDownAt the shuttingDownAt value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setShuttingDownAt(OffsetDateTime shuttingDownAt) {
        this.shuttingDownAt = shuttingDownAt;
        return this;
    }

    /**
     * Get the terminatedAt property: The killedAt property.
     *
     * @return the terminatedAt value.
     */
    public OffsetDateTime getTerminatedAt() {
        return this.terminatedAt;
    }

    /**
     * Set the terminatedAt property: The killedAt property.
     *
     * @param terminatedAt the terminatedAt value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setTerminatedAt(OffsetDateTime terminatedAt) {
        this.terminatedAt = terminatedAt;
        return this;
    }

    /**
     * Get the recoveringAt property: The recoveringAt property.
     *
     * @return the recoveringAt value.
     */
    public OffsetDateTime getRecoveringAt() {
        return this.recoveringAt;
    }

    /**
     * Set the recoveringAt property: The recoveringAt property.
     *
     * @param recoveringAt the recoveringAt value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setRecoveringAt(OffsetDateTime recoveringAt) {
        this.recoveringAt = recoveringAt;
        return this;
    }

    /**
     * Get the busyAt property: The busyAt property.
     *
     * @return the busyAt value.
     */
    public OffsetDateTime getBusyAt() {
        return this.busyAt;
    }

    /**
     * Set the busyAt property: The busyAt property.
     *
     * @param busyAt the busyAt value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setBusyAt(OffsetDateTime busyAt) {
        this.busyAt = busyAt;
        return this;
    }

    /**
     * Get the errorAt property: The errorAt property.
     *
     * @return the errorAt value.
     */
    public OffsetDateTime getErrorAt() {
        return this.errorAt;
    }

    /**
     * Set the errorAt property: The errorAt property.
     *
     * @param errorAt the errorAt value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setErrorAt(OffsetDateTime errorAt) {
        this.errorAt = errorAt;
        return this;
    }

    /**
     * Get the currentState property: The currentState property.
     *
     * @return the currentState value.
     */
    public String getCurrentState() {
        return this.currentState;
    }

    /**
     * Set the currentState property: The currentState property.
     *
     * @param currentState the currentState value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setCurrentState(String currentState) {
        this.currentState = currentState;
        return this;
    }

    /**
     * Get the jobCreationRequest property: The jobCreationRequest property.
     *
     * @return the jobCreationRequest value.
     */
    public SparkRequest getJobCreationRequest() {
        return this.jobCreationRequest;
    }

    /**
     * Set the jobCreationRequest property: The jobCreationRequest property.
     *
     * @param jobCreationRequest the jobCreationRequest value to set.
     * @return the SparkSessionState object itself.
     */
    public SparkSessionState setJobCreationRequest(SparkRequest jobCreationRequest) {
        this.jobCreationRequest = jobCreationRequest;
        return this;
    }
}
