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

package com.azure.resourcemanager.datamigration.models;

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

/** Database level migration state. */
public final class DatabaseMigrationState extends ExpandableStringEnum<DatabaseMigrationState> {
    /** Static value UNDEFINED for DatabaseMigrationState. */
    public static final DatabaseMigrationState UNDEFINED = fromString("UNDEFINED");

    /** Static value INITIAL for DatabaseMigrationState. */
    public static final DatabaseMigrationState INITIAL = fromString("INITIAL");

    /** Static value FULL_BACKUP_UPLOAD_START for DatabaseMigrationState. */
    public static final DatabaseMigrationState FULL_BACKUP_UPLOAD_START = fromString("FULL_BACKUP_UPLOAD_START");

    /** Static value LOG_SHIPPING_START for DatabaseMigrationState. */
    public static final DatabaseMigrationState LOG_SHIPPING_START = fromString("LOG_SHIPPING_START");

    /** Static value UPLOAD_LOG_FILES_START for DatabaseMigrationState. */
    public static final DatabaseMigrationState UPLOAD_LOG_FILES_START = fromString("UPLOAD_LOG_FILES_START");

    /** Static value CUTOVER_START for DatabaseMigrationState. */
    public static final DatabaseMigrationState CUTOVER_START = fromString("CUTOVER_START");

    /** Static value POST_CUTOVER_COMPLETE for DatabaseMigrationState. */
    public static final DatabaseMigrationState POST_CUTOVER_COMPLETE = fromString("POST_CUTOVER_COMPLETE");

    /** Static value COMPLETED for DatabaseMigrationState. */
    public static final DatabaseMigrationState COMPLETED = fromString("COMPLETED");

    /** Static value CANCELLED for DatabaseMigrationState. */
    public static final DatabaseMigrationState CANCELLED = fromString("CANCELLED");

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

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

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

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