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

package com.azure.resourcemanager.databox.models;

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

/** Name of the stage which is in progress. */
public final class StageName extends ExpandableStringEnum<StageName> {
    /** Static value DeviceOrdered for StageName. */
    public static final StageName DEVICE_ORDERED = fromString("DeviceOrdered");

    /** Static value DevicePrepared for StageName. */
    public static final StageName DEVICE_PREPARED = fromString("DevicePrepared");

    /** Static value Dispatched for StageName. */
    public static final StageName DISPATCHED = fromString("Dispatched");

    /** Static value Delivered for StageName. */
    public static final StageName DELIVERED = fromString("Delivered");

    /** Static value PickedUp for StageName. */
    public static final StageName PICKED_UP = fromString("PickedUp");

    /** Static value AtAzureDC for StageName. */
    public static final StageName AT_AZURE_DC = fromString("AtAzureDC");

    /** Static value DataCopy for StageName. */
    public static final StageName DATA_COPY = fromString("DataCopy");

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

    /** Static value CompletedWithErrors for StageName. */
    public static final StageName COMPLETED_WITH_ERRORS = fromString("CompletedWithErrors");

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

    /** Static value Failed_IssueReportedAtCustomer for StageName. */
    public static final StageName FAILED_ISSUE_REPORTED_AT_CUSTOMER = fromString("Failed_IssueReportedAtCustomer");

    /** Static value Failed_IssueDetectedAtAzureDC for StageName. */
    public static final StageName FAILED_ISSUE_DETECTED_AT_AZURE_DC = fromString("Failed_IssueDetectedAtAzureDC");

    /** Static value Aborted for StageName. */
    public static final StageName ABORTED = fromString("Aborted");

    /** Static value CompletedWithWarnings for StageName. */
    public static final StageName COMPLETED_WITH_WARNINGS = fromString("CompletedWithWarnings");

    /** Static value ReadyToDispatchFromAzureDC for StageName. */
    public static final StageName READY_TO_DISPATCH_FROM_AZURE_DC = fromString("ReadyToDispatchFromAzureDC");

    /** Static value ReadyToReceiveAtAzureDC for StageName. */
    public static final StageName READY_TO_RECEIVE_AT_AZURE_DC = fromString("ReadyToReceiveAtAzureDC");

    /** Static value Created for StageName. */
    public static final StageName CREATED = fromString("Created");

    /** Static value ShippedToAzureDC for StageName. */
    public static final StageName SHIPPED_TO_AZURE_DC = fromString("ShippedToAzureDC");

    /** Static value AwaitingShipmentDetails for StageName. */
    public static final StageName AWAITING_SHIPMENT_DETAILS = fromString("AwaitingShipmentDetails");

    /** Static value PreparingToShipFromAzureDC for StageName. */
    public static final StageName PREPARING_TO_SHIP_FROM_AZURE_DC = fromString("PreparingToShipFromAzureDC");

    /** Static value ShippedToCustomer for StageName. */
    public static final StageName SHIPPED_TO_CUSTOMER = fromString("ShippedToCustomer");

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

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

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