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

package com.azure.maps.traffic.models;

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

/** Defines values for IconCategory. */
public final class IconCategory extends ExpandableStringEnum<IconCategory> {
    /** Static value 0 for IconCategory. */
    public static final IconCategory UNKNOWN = fromInt(0);

    /** Static value 1 for IconCategory. */
    public static final IconCategory ACCIDENT = fromInt(1);

    /** Static value 2 for IconCategory. */
    public static final IconCategory FOG = fromInt(2);

    /** Static value 3 for IconCategory. */
    public static final IconCategory DANGEROUS_CONDITIONS = fromInt(3);

    /** Static value 4 for IconCategory. */
    public static final IconCategory RAIN = fromInt(4);

    /** Static value 5 for IconCategory. */
    public static final IconCategory ICE = fromInt(5);

    /** Static value 6 for IconCategory. */
    public static final IconCategory JAM = fromInt(6);

    /** Static value 7 for IconCategory. */
    public static final IconCategory LANE_CLOSED = fromInt(7);

    /** Static value 8 for IconCategory. */
    public static final IconCategory ROAD_CLOSED = fromInt(8);

    /** Static value 9 for IconCategory. */
    public static final IconCategory ROAD_WORKS = fromInt(9);

    /** Static value 10 for IconCategory. */
    public static final IconCategory WIND = fromInt(10);

    /** Static value 11 for IconCategory. */
    public static final IconCategory FLOODING = fromInt(11);

    /** Static value 12 for IconCategory. */
    public static final IconCategory DETOUR = fromInt(12);

    /** Static value 13 for IconCategory. */
    public static final IconCategory CLUSTER = fromInt(13);

    /** Static value 14 for IconCategory. */
    public static final IconCategory BROKEN_DOWN_VEHICLE = fromInt(14);

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

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