// 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 ID value associated with the type of unit being displayed. Can be used for unit translation. Please refer to
 * [Weather Service Concepts](https://aka.ms/AzureMapsWeatherConcepts) for details.
 */
public final class UnitType extends ExpandableStringEnum<UnitType> {
    /** Static value 0 for UnitType. */
    public static final UnitType FEET = fromInt(0);

    /** Static value 1 for UnitType. */
    public static final UnitType INCHES = fromInt(1);

    /** Static value 2 for UnitType. */
    public static final UnitType MILES = fromInt(2);

    /** Static value 3 for UnitType. */
    public static final UnitType MILLIMETER = fromInt(3);

    /** Static value 4 for UnitType. */
    public static final UnitType CENTIMETER = fromInt(4);

    /** Static value 5 for UnitType. */
    public static final UnitType METER = fromInt(5);

    /** Static value 6 for UnitType. */
    public static final UnitType KILOMETER = fromInt(6);

    /** Static value 7 for UnitType. */
    public static final UnitType KILOMETERS_PER_HOUR = fromInt(7);

    /** Static value 8 for UnitType. */
    public static final UnitType KNOTS = fromInt(8);

    /** Static value 9 for UnitType. */
    public static final UnitType MILES_PER_HOUR = fromInt(9);

    /** Static value 10 for UnitType. */
    public static final UnitType METERS_PER_SECOND = fromInt(10);

    /** Static value 11 for UnitType. */
    public static final UnitType HECTO_PASCALS = fromInt(11);

    /** Static value 12 for UnitType. */
    public static final UnitType INCHES_OF_MERCURY = fromInt(12);

    /** Static value 13 for UnitType. */
    public static final UnitType KILO_PASCALS = fromInt(13);

    /** Static value 14 for UnitType. */
    public static final UnitType MILLIBARS = fromInt(14);

    /** Static value 15 for UnitType. */
    public static final UnitType MILLIMETERS_OF_MERCURY = fromInt(15);

    /** Static value 16 for UnitType. */
    public static final UnitType POUNDS_PER_SQUARE_INCH = fromInt(16);

    /** Static value 17 for UnitType. */
    public static final UnitType CELSIUS = fromInt(17);

    /** Static value 18 for UnitType. */
    public static final UnitType FAHRENHEIT = fromInt(18);

    /** Static value 19 for UnitType. */
    public static final UnitType KELVIN = fromInt(19);

    /** Static value 20 for UnitType. */
    public static final UnitType PERCENT = fromInt(20);

    /** Static value 21 for UnitType. */
    public static final UnitType FLOAT = fromInt(21);

    /** Static value 22 for UnitType. */
    public static final UnitType INTEGER = fromInt(22);

    /** Static value 31 for UnitType. */
    public static final UnitType MICROGRAMS_PER_CUBIC_METER_OF_AIR = fromInt(31);

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

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