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

package com.azure.resourcemanager.billing.models;

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

/** Error code of the transfer validation response. */
public final class ProductTransferValidationErrorCode extends ExpandableStringEnum<ProductTransferValidationErrorCode> {
    /** Static value InvalidSource for ProductTransferValidationErrorCode. */
    public static final ProductTransferValidationErrorCode INVALID_SOURCE = fromString("InvalidSource");

    /** Static value ProductNotActive for ProductTransferValidationErrorCode. */
    public static final ProductTransferValidationErrorCode PRODUCT_NOT_ACTIVE = fromString("ProductNotActive");

    /** Static value InsufficientPermissionOnSource for ProductTransferValidationErrorCode. */
    public static final ProductTransferValidationErrorCode INSUFFICIENT_PERMISSION_ON_SOURCE =
        fromString("InsufficientPermissionOnSource");

    /** Static value InsufficientPermissionOnDestination for ProductTransferValidationErrorCode. */
    public static final ProductTransferValidationErrorCode INSUFFICIENT_PERMISSION_ON_DESTINATION =
        fromString("InsufficientPermissionOnDestination");

    /** Static value DestinationBillingProfilePastDue for ProductTransferValidationErrorCode. */
    public static final ProductTransferValidationErrorCode DESTINATION_BILLING_PROFILE_PAST_DUE =
        fromString("DestinationBillingProfilePastDue");

    /** Static value ProductTypeNotSupported for ProductTransferValidationErrorCode. */
    public static final ProductTransferValidationErrorCode PRODUCT_TYPE_NOT_SUPPORTED =
        fromString("ProductTypeNotSupported");

    /** Static value CrossBillingAccountNotAllowed for ProductTransferValidationErrorCode. */
    public static final ProductTransferValidationErrorCode CROSS_BILLING_ACCOUNT_NOT_ALLOWED =
        fromString("CrossBillingAccountNotAllowed");

    /** Static value NotAvailableForDestinationMarket for ProductTransferValidationErrorCode. */
    public static final ProductTransferValidationErrorCode NOT_AVAILABLE_FOR_DESTINATION_MARKET =
        fromString("NotAvailableForDestinationMarket");

    /** Static value OneTimePurchaseProductTransferNotAllowed for ProductTransferValidationErrorCode. */
    public static final ProductTransferValidationErrorCode ONE_TIME_PURCHASE_PRODUCT_TRANSFER_NOT_ALLOWED =
        fromString("OneTimePurchaseProductTransferNotAllowed");

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

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

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