<?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 amenity features for the property.
 *
 * Protobuf type <code>google.shopping.merchant.products.v1.ProductAttributes.AmenityFeature</code>
 */
class AmenityFeature
{
    /**
     * Unspecified amenity feature.
     *
     * Generated from protobuf enum <code>AMENITY_FEATURE_UNSPECIFIED = 0;</code>
     */
    const AMENITY_FEATURE_UNSPECIFIED = 0;
    /**
     * Balcony.
     *
     * Generated from protobuf enum <code>BALCONY = 1;</code>
     */
    const BALCONY = 1;
    /**
     * Basement.
     *
     * Generated from protobuf enum <code>BASEMENT = 2;</code>
     */
    const BASEMENT = 2;
    /**
     * Basketball court.
     *
     * Generated from protobuf enum <code>BASKETBALL_COURT = 3;</code>
     */
    const BASKETBALL_COURT = 3;
    /**
     * Bike storage.
     *
     * Generated from protobuf enum <code>BIKE_STORAGE = 4;</code>
     */
    const BIKE_STORAGE = 4;
    /**
     * Central air conditioning.
     *
     * Generated from protobuf enum <code>CENTRAL_AC = 5;</code>
     */
    const CENTRAL_AC = 5;
    /**
     * Dishwasher.
     *
     * Generated from protobuf enum <code>DISHWASHER = 6;</code>
     */
    const DISHWASHER = 6;
    /**
     * Dog park.
     *
     * Generated from protobuf enum <code>DOG_PARK = 7;</code>
     */
    const DOG_PARK = 7;
    /**
     * Elevator.
     *
     * Generated from protobuf enum <code>ELEVATOR = 8;</code>
     */
    const ELEVATOR = 8;
    /**
     * EV charging.
     *
     * Generated from protobuf enum <code>EV_CHARGING = 9;</code>
     */
    const EV_CHARGING = 9;
    /**
     * Fenced lot.
     *
     * Generated from protobuf enum <code>FENCED_LOT = 10;</code>
     */
    const FENCED_LOT = 10;
    /**
     * Fireplace.
     *
     * Generated from protobuf enum <code>FIREPLACE = 11;</code>
     */
    const FIREPLACE = 11;
    /**
     * Fitness center.
     *
     * Generated from protobuf enum <code>FITNESS_CENTER = 12;</code>
     */
    const FITNESS_CENTER = 12;
    /**
     * Forced air heating.
     *
     * Generated from protobuf enum <code>FORCED_AIR_HEATING = 13;</code>
     */
    const FORCED_AIR_HEATING = 13;
    /**
     * Fully furnished.
     *
     * Generated from protobuf enum <code>FULLY_FURNISHED = 14;</code>
     */
    const FULLY_FURNISHED = 14;
    /**
     * Garage.
     *
     * Generated from protobuf enum <code>GARAGE = 15;</code>
     */
    const GARAGE = 15;
    /**
     * Gated community.
     *
     * Generated from protobuf enum <code>GATED_COMMUNITY = 16;</code>
     */
    const GATED_COMMUNITY = 16;
    /**
     * Hardwood floors.
     *
     * Generated from protobuf enum <code>HARDWOOD_FLOORS = 17;</code>
     */
    const HARDWOOD_FLOORS = 17;
    /**
     * High speed internet.
     *
     * Generated from protobuf enum <code>HIGH_SPEED_INTERNET = 18;</code>
     */
    const HIGH_SPEED_INTERNET = 18;
    /**
     * Intercom.
     *
     * Generated from protobuf enum <code>INTERCOM = 19;</code>
     */
    const INTERCOM = 19;
    /**
     * In-unit washer and dryer.
     *
     * Generated from protobuf enum <code>IN_UNIT_WASHER_DRYER = 20;</code>
     */
    const IN_UNIT_WASHER_DRYER = 20;
    /**
     * Kitchen.
     *
     * Generated from protobuf enum <code>KITCHEN = 21;</code>
     */
    const KITCHEN = 21;
    /**
     * Large closets.
     *
     * Generated from protobuf enum <code>LARGE_CLOSETS = 22;</code>
     */
    const LARGE_CLOSETS = 22;
    /**
     * Multisport court.
     *
     * Generated from protobuf enum <code>MULTISPORT_COURT = 23;</code>
     */
    const MULTISPORT_COURT = 23;
    /**
     * Onsite laundry.
     *
     * Generated from protobuf enum <code>ONSITE_LAUNDRY = 24;</code>
     */
    const ONSITE_LAUNDRY = 24;
    /**
     * Outdoor lounge.
     *
     * Generated from protobuf enum <code>OUTDOOR_LOUNGE = 25;</code>
     */
    const OUTDOOR_LOUNGE = 25;
    /**
     * Parking.
     *
     * Generated from protobuf enum <code>PARKING = 26;</code>
     */
    const PARKING = 26;
    /**
     * Patio.
     *
     * Generated from protobuf enum <code>PATIO = 27;</code>
     */
    const PATIO = 27;
    /**
     * Pickleball court.
     *
     * Generated from protobuf enum <code>PICKLEBALL_COURT = 28;</code>
     */
    const PICKLEBALL_COURT = 28;
    /**
     * Pool.
     *
     * Generated from protobuf enum <code>POOL = 29;</code>
     */
    const POOL = 29;
    /**
     * Refrigerator.
     *
     * Generated from protobuf enum <code>REFRIGERATOR = 30;</code>
     */
    const REFRIGERATOR = 30;
    /**
     * Soccer field.
     *
     * Generated from protobuf enum <code>SOCCER_FIELD = 31;</code>
     */
    const SOCCER_FIELD = 31;
    /**
     * Tennis court.
     *
     * Generated from protobuf enum <code>TENNIS_COURT = 32;</code>
     */
    const TENNIS_COURT = 32;
    /**
     * Walk-in closets.
     *
     * Generated from protobuf enum <code>WALK_IN_CLOSETS = 33;</code>
     */
    const WALK_IN_CLOSETS = 33;
    /**
     * Wheelchair accessibility.
     *
     * Generated from protobuf enum <code>WHEELCHAIR_ACCESS = 34;</code>
     */
    const WHEELCHAIR_ACCESS = 34;

    private static $valueToName = [
        self::AMENITY_FEATURE_UNSPECIFIED => 'AMENITY_FEATURE_UNSPECIFIED',
        self::BALCONY => 'BALCONY',
        self::BASEMENT => 'BASEMENT',
        self::BASKETBALL_COURT => 'BASKETBALL_COURT',
        self::BIKE_STORAGE => 'BIKE_STORAGE',
        self::CENTRAL_AC => 'CENTRAL_AC',
        self::DISHWASHER => 'DISHWASHER',
        self::DOG_PARK => 'DOG_PARK',
        self::ELEVATOR => 'ELEVATOR',
        self::EV_CHARGING => 'EV_CHARGING',
        self::FENCED_LOT => 'FENCED_LOT',
        self::FIREPLACE => 'FIREPLACE',
        self::FITNESS_CENTER => 'FITNESS_CENTER',
        self::FORCED_AIR_HEATING => 'FORCED_AIR_HEATING',
        self::FULLY_FURNISHED => 'FULLY_FURNISHED',
        self::GARAGE => 'GARAGE',
        self::GATED_COMMUNITY => 'GATED_COMMUNITY',
        self::HARDWOOD_FLOORS => 'HARDWOOD_FLOORS',
        self::HIGH_SPEED_INTERNET => 'HIGH_SPEED_INTERNET',
        self::INTERCOM => 'INTERCOM',
        self::IN_UNIT_WASHER_DRYER => 'IN_UNIT_WASHER_DRYER',
        self::KITCHEN => 'KITCHEN',
        self::LARGE_CLOSETS => 'LARGE_CLOSETS',
        self::MULTISPORT_COURT => 'MULTISPORT_COURT',
        self::ONSITE_LAUNDRY => 'ONSITE_LAUNDRY',
        self::OUTDOOR_LOUNGE => 'OUTDOOR_LOUNGE',
        self::PARKING => 'PARKING',
        self::PATIO => 'PATIO',
        self::PICKLEBALL_COURT => 'PICKLEBALL_COURT',
        self::POOL => 'POOL',
        self::REFRIGERATOR => 'REFRIGERATOR',
        self::SOCCER_FIELD => 'SOCCER_FIELD',
        self::TENNIS_COURT => 'TENNIS_COURT',
        self::WALK_IN_CLOSETS => 'WALK_IN_CLOSETS',
        self::WHEELCHAIR_ACCESS => 'WHEELCHAIR_ACCESS',
    ];

    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);
    }
}

