<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/shopping/merchant/products/v1/products_common.proto

namespace Google\Shopping\Merchant\Products\V1\ProductAttributes;

use UnexpectedValueException;

/**
 * The vehicle body style. See the [Body
 * style](https://support.google.com/google-ads/answer/14157085) for more
 * information.
 *
 * Protobuf type <code>google.shopping.merchant.products.v1.ProductAttributes.VehicleBodyStyle</code>
 */
class VehicleBodyStyle
{
    /**
     * Unspecified vehicle body style.
     *
     * Generated from protobuf enum <code>VEHICLE_BODY_STYLE_UNSPECIFIED = 0;</code>
     */
    const VEHICLE_BODY_STYLE_UNSPECIFIED = 0;
    /**
     * ATV Sport.
     *
     * Generated from protobuf enum <code>ATV_SPORT = 1;</code>
     */
    const ATV_SPORT = 1;
    /**
     * ATV Touring.
     *
     * Generated from protobuf enum <code>ATV_TOURING = 2;</code>
     */
    const ATV_TOURING = 2;
    /**
     * ATV Utility.
     *
     * Generated from protobuf enum <code>ATV_UTILITY = 3;</code>
     */
    const ATV_UTILITY = 3;
    /**
     * ATV Youth.
     *
     * Generated from protobuf enum <code>ATV_YOUTH = 4;</code>
     */
    const ATV_YOUTH = 4;
    /**
     * City car.
     *
     * Generated from protobuf enum <code>CITY_CAR = 5;</code>
     */
    const CITY_CAR = 5;
    /**
     * Class A motorhome.
     *
     * Generated from protobuf enum <code>CLASS_A_MOTORHOME = 6;</code>
     */
    const CLASS_A_MOTORHOME = 6;
    /**
     * Class B motorhome.
     *
     * Generated from protobuf enum <code>CLASS_B_MOTORHOME = 7;</code>
     */
    const CLASS_B_MOTORHOME = 7;
    /**
     * Class C motorhome.
     *
     * Generated from protobuf enum <code>CLASS_C_MOTORHOME = 8;</code>
     */
    const CLASS_C_MOTORHOME = 8;
    /**
     * Compact SUV.
     *
     * Generated from protobuf enum <code>COMPACT_SUV = 9;</code>
     */
    const COMPACT_SUV = 9;
    /**
     * Convertible.
     *
     * Generated from protobuf enum <code>CONVERTIBLE = 10;</code>
     */
    const CONVERTIBLE = 10;
    /**
     * Coupe.
     *
     * Generated from protobuf enum <code>COUPE = 11;</code>
     */
    const COUPE = 11;
    /**
     * Crossover.
     *
     * Generated from protobuf enum <code>CROSSOVER = 12;</code>
     */
    const CROSSOVER = 12;
    /**
     * Fifth wheel.
     *
     * Generated from protobuf enum <code>FIFTH_WHEEL = 13;</code>
     */
    const FIFTH_WHEEL = 13;
    /**
     * Full size van.
     *
     * Generated from protobuf enum <code>FULL_SIZE_VAN = 14;</code>
     */
    const FULL_SIZE_VAN = 14;
    /**
     * Hatchback.
     *
     * Generated from protobuf enum <code>HATCHBACK = 15;</code>
     */
    const HATCHBACK = 15;
    /**
     * Limousine.
     *
     * Generated from protobuf enum <code>LIMOUSINE = 16;</code>
     */
    const LIMOUSINE = 16;
    /**
     * Minivan.
     *
     * Generated from protobuf enum <code>MINIVAN = 17;</code>
     */
    const MINIVAN = 17;
    /**
     * Notchback.
     *
     * Generated from protobuf enum <code>NOTCHBACK = 18;</code>
     */
    const NOTCHBACK = 18;
    /**
     * Pop up camper.
     *
     * Generated from protobuf enum <code>POP_UP_CAMPER = 19;</code>
     */
    const POP_UP_CAMPER = 19;
    /**
     * Sedan.
     *
     * Generated from protobuf enum <code>SEDAN = 20;</code>
     */
    const SEDAN = 20;
    /**
     * Side by side.
     *
     * Generated from protobuf enum <code>SIDE_BY_SIDE = 21;</code>
     */
    const SIDE_BY_SIDE = 21;
    /**
     * Station wagon.
     *
     * Generated from protobuf enum <code>STATION_WAGON = 22;</code>
     */
    const STATION_WAGON = 22;
    /**
     * SUV.
     *
     * Generated from protobuf enum <code>SUV = 23;</code>
     */
    const SUV = 23;
    /**
     * Travel trailer.
     *
     * Generated from protobuf enum <code>TRAVEL_TRAILER = 24;</code>
     */
    const TRAVEL_TRAILER = 24;
    /**
     * Truck.
     *
     * Generated from protobuf enum <code>TRUCK = 25;</code>
     */
    const TRUCK = 25;
    /**
     * Truck camper.
     *
     * Generated from protobuf enum <code>TRUCK_CAMPER = 26;</code>
     */
    const TRUCK_CAMPER = 26;
    /**
     * Ute.
     *
     * Generated from protobuf enum <code>UTE = 27;</code>
     */
    const UTE = 27;
    /**
     * UTV Recreational utility.
     *
     * Generated from protobuf enum <code>UTV_RECREATIONAL_UTILITY = 28;</code>
     */
    const UTV_RECREATIONAL_UTILITY = 28;
    /**
     * UTV Sport.
     *
     * Generated from protobuf enum <code>UTV_SPORT = 29;</code>
     */
    const UTV_SPORT = 29;
    /**
     * UTV Utility.
     *
     * Generated from protobuf enum <code>UTV_UTILITY = 30;</code>
     */
    const UTV_UTILITY = 30;
    /**
     * UTV Youth.
     *
     * Generated from protobuf enum <code>UTV_YOUTH = 31;</code>
     */
    const UTV_YOUTH = 31;

    private static $valueToName = [
        self::VEHICLE_BODY_STYLE_UNSPECIFIED => 'VEHICLE_BODY_STYLE_UNSPECIFIED',
        self::ATV_SPORT => 'ATV_SPORT',
        self::ATV_TOURING => 'ATV_TOURING',
        self::ATV_UTILITY => 'ATV_UTILITY',
        self::ATV_YOUTH => 'ATV_YOUTH',
        self::CITY_CAR => 'CITY_CAR',
        self::CLASS_A_MOTORHOME => 'CLASS_A_MOTORHOME',
        self::CLASS_B_MOTORHOME => 'CLASS_B_MOTORHOME',
        self::CLASS_C_MOTORHOME => 'CLASS_C_MOTORHOME',
        self::COMPACT_SUV => 'COMPACT_SUV',
        self::CONVERTIBLE => 'CONVERTIBLE',
        self::COUPE => 'COUPE',
        self::CROSSOVER => 'CROSSOVER',
        self::FIFTH_WHEEL => 'FIFTH_WHEEL',
        self::FULL_SIZE_VAN => 'FULL_SIZE_VAN',
        self::HATCHBACK => 'HATCHBACK',
        self::LIMOUSINE => 'LIMOUSINE',
        self::MINIVAN => 'MINIVAN',
        self::NOTCHBACK => 'NOTCHBACK',
        self::POP_UP_CAMPER => 'POP_UP_CAMPER',
        self::SEDAN => 'SEDAN',
        self::SIDE_BY_SIDE => 'SIDE_BY_SIDE',
        self::STATION_WAGON => 'STATION_WAGON',
        self::SUV => 'SUV',
        self::TRAVEL_TRAILER => 'TRAVEL_TRAILER',
        self::TRUCK => 'TRUCK',
        self::TRUCK_CAMPER => 'TRUCK_CAMPER',
        self::UTE => 'UTE',
        self::UTV_RECREATIONAL_UTILITY => 'UTV_RECREATIONAL_UTILITY',
        self::UTV_SPORT => 'UTV_SPORT',
        self::UTV_UTILITY => 'UTV_UTILITY',
        self::UTV_YOUTH => 'UTV_YOUTH',
    ];

    public static function name($value)
    {
        if (!isset(self::$valueToName[$value])) {
            throw new UnexpectedValueException(sprintf(
                    'Enum %s has no name defined for value %s', __CLASS__, $value));
        }
        return self::$valueToName[$value];
    }


    public static function value($name)
    {
        $const = __CLASS__ . '::' . strtoupper($name);
        if (!defined($const)) {
            throw new UnexpectedValueException(sprintf(
                    'Enum %s has no value defined for name %s', __CLASS__, $name));
        }
        return constant($const);
    }
}

