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

package com.azure.resourcemanager.recoveryservicessiterecovery.models;

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

/** The migration status. */
public final class MigrationState extends ExpandableStringEnum<MigrationState> {
    /** Static value None for MigrationState. */
    public static final MigrationState NONE = fromString("None");

    /** Static value EnableMigrationInProgress for MigrationState. */
    public static final MigrationState ENABLE_MIGRATION_IN_PROGRESS = fromString("EnableMigrationInProgress");

    /** Static value EnableMigrationFailed for MigrationState. */
    public static final MigrationState ENABLE_MIGRATION_FAILED = fromString("EnableMigrationFailed");

    /** Static value DisableMigrationInProgress for MigrationState. */
    public static final MigrationState DISABLE_MIGRATION_IN_PROGRESS = fromString("DisableMigrationInProgress");

    /** Static value DisableMigrationFailed for MigrationState. */
    public static final MigrationState DISABLE_MIGRATION_FAILED = fromString("DisableMigrationFailed");

    /** Static value InitialSeedingInProgress for MigrationState. */
    public static final MigrationState INITIAL_SEEDING_IN_PROGRESS = fromString("InitialSeedingInProgress");

    /** Static value InitialSeedingFailed for MigrationState. */
    public static final MigrationState INITIAL_SEEDING_FAILED = fromString("InitialSeedingFailed");

    /** Static value Replicating for MigrationState. */
    public static final MigrationState REPLICATING = fromString("Replicating");

    /** Static value MigrationInProgress for MigrationState. */
    public static final MigrationState MIGRATION_IN_PROGRESS = fromString("MigrationInProgress");

    /** Static value MigrationSucceeded for MigrationState. */
    public static final MigrationState MIGRATION_SUCCEEDED = fromString("MigrationSucceeded");

    /** Static value MigrationFailed for MigrationState. */
    public static final MigrationState MIGRATION_FAILED = fromString("MigrationFailed");

    /** Static value ResumeInProgress for MigrationState. */
    public static final MigrationState RESUME_IN_PROGRESS = fromString("ResumeInProgress");

    /** Static value ResumeInitiated for MigrationState. */
    public static final MigrationState RESUME_INITIATED = fromString("ResumeInitiated");

    /** Static value SuspendingProtection for MigrationState. */
    public static final MigrationState SUSPENDING_PROTECTION = fromString("SuspendingProtection");

    /** Static value ProtectionSuspended for MigrationState. */
    public static final MigrationState PROTECTION_SUSPENDED = fromString("ProtectionSuspended");

    /** Static value MigrationCompletedWithInformation for MigrationState. */
    public static final MigrationState MIGRATION_COMPLETED_WITH_INFORMATION =
        fromString("MigrationCompletedWithInformation");

    /** Static value MigrationPartiallySucceeded for MigrationState. */
    public static final MigrationState MIGRATION_PARTIALLY_SUCCEEDED = fromString("MigrationPartiallySucceeded");

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

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

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