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

package com.azure.maps.weather.models;

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

/**
 * Numeric value representing an image that displays the `iconPhrase`. Please refer to [Weather Service
 * Concepts](https://aka.ms/AzureMapsWeatherConcepts) for details.
 */
public final class IconCode extends ExpandableStringEnum<IconCode> {
    /** Static value 1 for IconCode. */
    public static final IconCode SUNNY = fromInt(1);

    /** Static value 2 for IconCode. */
    public static final IconCode MOSTLY_SUNNY = fromInt(2);

    /** Static value 3 for IconCode. */
    public static final IconCode PARTLY_SUNNY = fromInt(3);

    /** Static value 4 for IconCode. */
    public static final IconCode INTERMITTENT_CLOUDS = fromInt(4);

    /** Static value 5 for IconCode. */
    public static final IconCode HAZY_SUNSHINE = fromInt(5);

    /** Static value 6 for IconCode. */
    public static final IconCode MOSTLY_CLOUDY = fromInt(6);

    /** Static value 7 for IconCode. */
    public static final IconCode CLOUDY = fromInt(7);

    /** Static value 8 for IconCode. */
    public static final IconCode DREARY = fromInt(8);

    /** Static value 11 for IconCode. */
    public static final IconCode FOG = fromInt(11);

    /** Static value 12 for IconCode. */
    public static final IconCode SHOWERS = fromInt(12);

    /** Static value 13 for IconCode. */
    public static final IconCode MOSTLY_CLOUDY_WITH_SHOWERS = fromInt(13);

    /** Static value 14 for IconCode. */
    public static final IconCode PARTLY_SUNNY_WITH_SHOWERS = fromInt(14);

    /** Static value 15 for IconCode. */
    public static final IconCode THUNDERSTORMS = fromInt(15);

    /** Static value 16 for IconCode. */
    public static final IconCode MOSTLY_CLOUDY_WITH_THUNDERSTORMS = fromInt(16);

    /** Static value 17 for IconCode. */
    public static final IconCode PARTLY_SUNNY_WITH_THUNDERSTORMS = fromInt(17);

    /** Static value 18 for IconCode. */
    public static final IconCode RAIN = fromInt(18);

    /** Static value 19 for IconCode. */
    public static final IconCode FLURRIES = fromInt(19);

    /** Static value 20 for IconCode. */
    public static final IconCode MOSTLY_CLOUDY_WITH_FLURRIES = fromInt(20);

    /** Static value 21 for IconCode. */
    public static final IconCode PARTLY_SUNNY_WITH_FLURRIES = fromInt(21);

    /** Static value 22 for IconCode. */
    public static final IconCode SNOW = fromInt(22);

    /** Static value 23 for IconCode. */
    public static final IconCode MOSTLY_CLOUDY_WITH_SNOW = fromInt(23);

    /** Static value 24 for IconCode. */
    public static final IconCode ICE = fromInt(24);

    /** Static value 25 for IconCode. */
    public static final IconCode SLEET = fromInt(25);

    /** Static value 26 for IconCode. */
    public static final IconCode FREEZING_RAIN = fromInt(26);

    /** Static value 29 for IconCode. */
    public static final IconCode RAIN_AND_SNOW = fromInt(29);

    /** Static value 30 for IconCode. */
    public static final IconCode HOT = fromInt(30);

    /** Static value 31 for IconCode. */
    public static final IconCode COLD = fromInt(31);

    /** Static value 32 for IconCode. */
    public static final IconCode WINDY = fromInt(32);

    /** Static value 33 for IconCode. */
    public static final IconCode CLEAR = fromInt(33);

    /** Static value 34 for IconCode. */
    public static final IconCode MOSTLY_CLEAR = fromInt(34);

    /** Static value 35 for IconCode. */
    public static final IconCode PARTLY_CLOUDY = fromInt(35);

    /** Static value 36 for IconCode. */
    public static final IconCode INTERMITTENT_CLOUDS_NIGHT = fromInt(36);

    /** Static value 37 for IconCode. */
    public static final IconCode HAZY_MOONLIGHT = fromInt(37);

    /** Static value 38 for IconCode. */
    public static final IconCode MOSTLY_CLOUDY_NIGHT = fromInt(38);

    /** Static value 39 for IconCode. */
    public static final IconCode PARTLY_CLOUDY_WITH_SHOWERS = fromInt(39);

    /** Static value 40 for IconCode. */
    public static final IconCode MOSTLY_CLOUDY_WITH_SHOWERS_NIGHT = fromInt(40);

    /** Static value 41 for IconCode. */
    public static final IconCode PARTLY_CLOUDY_WITH_THUNDERSTORMS = fromInt(41);

    /** Static value 42 for IconCode. */
    public static final IconCode MOSTLY_CLOUDY_WITH_THUNDERSTORMS_NIGHT = fromInt(42);

    /** Static value 43 for IconCode. */
    public static final IconCode MOSTLY_CLOUDY_WITH_FLURRIES_NIGHT = fromInt(43);

    /** Static value 44 for IconCode. */
    public static final IconCode MOSTLY_CLOUDY_WITH_SNOW_NIGHT = fromInt(44);

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

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