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

package com.azure.resourcemanager.customerinsights.models;

import com.azure.core.util.ExpandableStringEnum;
import com.fasterxml.jackson.annotation.JsonCreator;
import java.util.Collection;

/**
 * Prediction model life cycle. When prediction is in PendingModelConfirmation status, it is allowed to update the
 * status to PendingFeaturing or Active through API.
 */
public final class PredictionModelLifeCycle extends ExpandableStringEnum<PredictionModelLifeCycle> {
    /** Static value New for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle NEW = fromString("New");

    /** Static value Provisioning for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle PROVISIONING = fromString("Provisioning");

    /** Static value ProvisioningFailed for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle PROVISIONING_FAILED = fromString("ProvisioningFailed");

    /** Static value PendingDiscovering for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle PENDING_DISCOVERING = fromString("PendingDiscovering");

    /** Static value Discovering for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle DISCOVERING = fromString("Discovering");

    /** Static value PendingFeaturing for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle PENDING_FEATURING = fromString("PendingFeaturing");

    /** Static value Featuring for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle FEATURING = fromString("Featuring");

    /** Static value FeaturingFailed for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle FEATURING_FAILED = fromString("FeaturingFailed");

    /** Static value PendingTraining for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle PENDING_TRAINING = fromString("PendingTraining");

    /** Static value Training for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle TRAINING = fromString("Training");

    /** Static value TrainingFailed for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle TRAINING_FAILED = fromString("TrainingFailed");

    /** Static value Evaluating for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle EVALUATING = fromString("Evaluating");

    /** Static value EvaluatingFailed for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle EVALUATING_FAILED = fromString("EvaluatingFailed");

    /** Static value PendingModelConfirmation for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle PENDING_MODEL_CONFIRMATION = fromString("PendingModelConfirmation");

    /** Static value Active for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle ACTIVE = fromString("Active");

    /** Static value Deleted for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle DELETED = fromString("Deleted");

    /** Static value HumanIntervention for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle HUMAN_INTERVENTION = fromString("HumanIntervention");

    /** Static value Failed for PredictionModelLifeCycle. */
    public static final PredictionModelLifeCycle FAILED = fromString("Failed");

    /**
     * Creates a new instance of PredictionModelLifeCycle value.
     *
     * @deprecated Use the {@link #fromString(String)} factory method.
     */
    @Deprecated
    public PredictionModelLifeCycle() {
    }

    /**
     * Creates or finds a PredictionModelLifeCycle from its string representation.
     *
     * @param name a name to look for.
     * @return the corresponding PredictionModelLifeCycle.
     */
    @JsonCreator
    public static PredictionModelLifeCycle fromString(String name) {
        return fromString(name, PredictionModelLifeCycle.class);
    }

    /**
     * Gets known PredictionModelLifeCycle values.
     *
     * @return known PredictionModelLifeCycle values.
     */
    public static Collection<PredictionModelLifeCycle> values() {
        return values(PredictionModelLifeCycle.class);
    }
}
