<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/shopping/type/types.proto

namespace Google\Shopping\Type\ReportingContext;

use UnexpectedValueException;

/**
 * Reporting context values.
 *
 * Protobuf type <code>google.shopping.type.ReportingContext.ReportingContextEnum</code>
 */
class ReportingContextEnum
{
    /**
     * Not specified.
     *
     * Generated from protobuf enum <code>REPORTING_CONTEXT_ENUM_UNSPECIFIED = 0;</code>
     */
    const REPORTING_CONTEXT_ENUM_UNSPECIFIED = 0;
    /**
     * [Shopping ads](https://support.google.com/merchants/answer/6149970).
     *
     * Generated from protobuf enum <code>SHOPPING_ADS = 1;</code>
     */
    const SHOPPING_ADS = 1;
    /**
     * Deprecated:  Use `DEMAND_GEN_ADS` instead.
     * [Discovery and Demand Gen
     * ads](https://support.google.com/merchants/answer/13389785).
     *
     * Generated from protobuf enum <code>DISCOVERY_ADS = 2 [deprecated = true];</code>
     */
    const DISCOVERY_ADS = 2;
    /**
     * [Demand Gen ads](https://support.google.com/merchants/answer/13389785).
     *
     * Generated from protobuf enum <code>DEMAND_GEN_ADS = 13;</code>
     */
    const DEMAND_GEN_ADS = 13;
    /**
     * [Demand Gen ads on Discover
     * surface](https://support.google.com/merchants/answer/13389785).
     *
     * Generated from protobuf enum <code>DEMAND_GEN_ADS_DISCOVER_SURFACE = 14;</code>
     */
    const DEMAND_GEN_ADS_DISCOVER_SURFACE = 14;
    /**
     * [Video ads](https://support.google.com/google-ads/answer/6340491).
     *
     * Generated from protobuf enum <code>VIDEO_ADS = 3;</code>
     */
    const VIDEO_ADS = 3;
    /**
     * [Display ads](https://support.google.com/merchants/answer/6069387).
     *
     * Generated from protobuf enum <code>DISPLAY_ADS = 4;</code>
     */
    const DISPLAY_ADS = 4;
    /**
     * [Local inventory
     * ads](https://support.google.com/merchants/answer/3271956).
     *
     * Generated from protobuf enum <code>LOCAL_INVENTORY_ADS = 5;</code>
     */
    const LOCAL_INVENTORY_ADS = 5;
    /**
     * [Vehicle inventory
     * ads](https://support.google.com/merchants/answer/11544533).
     *
     * Generated from protobuf enum <code>VEHICLE_INVENTORY_ADS = 6;</code>
     */
    const VEHICLE_INVENTORY_ADS = 6;
    /**
     * [Free product
     * listings](https://support.google.com/merchants/answer/9199328).
     *
     * Generated from protobuf enum <code>FREE_LISTINGS = 7;</code>
     */
    const FREE_LISTINGS = 7;
    /**
     * [Free local product
     * listings](https://support.google.com/merchants/answer/9825611).
     *
     * Generated from protobuf enum <code>FREE_LOCAL_LISTINGS = 8;</code>
     */
    const FREE_LOCAL_LISTINGS = 8;
    /**
     * [Free local vehicle
     * listings](https://support.google.com/merchants/answer/11544533).
     *
     * Generated from protobuf enum <code>FREE_LOCAL_VEHICLE_LISTINGS = 9;</code>
     */
    const FREE_LOCAL_VEHICLE_LISTINGS = 9;
    /**
     * [YouTube
     * Shopping](https://support.google.com/merchants/answer/13478370).
     *
     * Generated from protobuf enum <code>YOUTUBE_SHOPPING = 10;</code>
     */
    const YOUTUBE_SHOPPING = 10;
    /**
     * [Cloud retail](https://cloud.google.com/solutions/retail).
     *
     * Generated from protobuf enum <code>CLOUD_RETAIL = 11;</code>
     */
    const CLOUD_RETAIL = 11;
    /**
     * [Local cloud retail](https://cloud.google.com/solutions/retail).
     *
     * Generated from protobuf enum <code>LOCAL_CLOUD_RETAIL = 12;</code>
     */
    const LOCAL_CLOUD_RETAIL = 12;

    private static $valueToName = [
        self::REPORTING_CONTEXT_ENUM_UNSPECIFIED => 'REPORTING_CONTEXT_ENUM_UNSPECIFIED',
        self::SHOPPING_ADS => 'SHOPPING_ADS',
        self::DISCOVERY_ADS => 'DISCOVERY_ADS',
        self::DEMAND_GEN_ADS => 'DEMAND_GEN_ADS',
        self::DEMAND_GEN_ADS_DISCOVER_SURFACE => 'DEMAND_GEN_ADS_DISCOVER_SURFACE',
        self::VIDEO_ADS => 'VIDEO_ADS',
        self::DISPLAY_ADS => 'DISPLAY_ADS',
        self::LOCAL_INVENTORY_ADS => 'LOCAL_INVENTORY_ADS',
        self::VEHICLE_INVENTORY_ADS => 'VEHICLE_INVENTORY_ADS',
        self::FREE_LISTINGS => 'FREE_LISTINGS',
        self::FREE_LOCAL_LISTINGS => 'FREE_LOCAL_LISTINGS',
        self::FREE_LOCAL_VEHICLE_LISTINGS => 'FREE_LOCAL_VEHICLE_LISTINGS',
        self::YOUTUBE_SHOPPING => 'YOUTUBE_SHOPPING',
        self::CLOUD_RETAIL => 'CLOUD_RETAIL',
        self::LOCAL_CLOUD_RETAIL => 'LOCAL_CLOUD_RETAIL',
    ];

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

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(ReportingContextEnum::class, \Google\Shopping\Type\ReportingContext_ReportingContextEnum::class);

