// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.
package com.azure.messaging.servicebus.administration.implementation.models;

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

/** Availability status of the entity. */
public final class EntityAvailabilityStatusImpl extends ExpandableStringEnum<EntityAvailabilityStatusImpl> {

    /** Static value Available for EntityAvailabilityStatus. */
    public static final EntityAvailabilityStatusImpl AVAILABLE = fromString("Available");

    /** Static value Limited for EntityAvailabilityStatus. */
    public static final EntityAvailabilityStatusImpl LIMITED = fromString("Limited");

    /** Static value Renaming for EntityAvailabilityStatus. */
    public static final EntityAvailabilityStatusImpl RENAMING = fromString("Renaming");

    /** Static value Restoring for EntityAvailabilityStatus. */
    public static final EntityAvailabilityStatusImpl RESTORING = fromString("Restoring");

    /** Static value Unknown for EntityAvailabilityStatus. */
    public static final EntityAvailabilityStatusImpl UNKNOWN = fromString("Unknown");

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

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

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