// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/ads/googleads/v3/enums/promotion_placeholder_field.proto

package enums

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Possible values for Promotion placeholder fields.
type PromotionPlaceholderFieldEnum_PromotionPlaceholderField int32

const (
	// Not specified.
	PromotionPlaceholderFieldEnum_UNSPECIFIED PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 0
	// Used for return value only. Represents value unknown in this version.
	PromotionPlaceholderFieldEnum_UNKNOWN PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 1
	// Data Type: STRING. The text that appears on the ad when the extension is
	// shown.
	PromotionPlaceholderFieldEnum_PROMOTION_TARGET PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 2
	// Data Type: STRING. Allows you to add "up to" phrase to the promotion,
	// in case you have variable promotion rates.
	PromotionPlaceholderFieldEnum_DISCOUNT_MODIFIER PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 3
	// Data Type: INT64. Takes a value in micros, where 1 million micros
	// represents 1%, and is shown as a percentage when rendered.
	PromotionPlaceholderFieldEnum_PERCENT_OFF PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 4
	// Data Type: MONEY. Requires a currency and an amount of money.
	PromotionPlaceholderFieldEnum_MONEY_AMOUNT_OFF PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 5
	// Data Type: STRING. A string that the user enters to get the discount.
	PromotionPlaceholderFieldEnum_PROMOTION_CODE PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 6
	// Data Type: MONEY. A minimum spend before the user qualifies for the
	// promotion.
	PromotionPlaceholderFieldEnum_ORDERS_OVER_AMOUNT PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 7
	// Data Type: DATE. The start date of the promotion.
	PromotionPlaceholderFieldEnum_PROMOTION_START PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 8
	// Data Type: DATE. The end date of the promotion.
	PromotionPlaceholderFieldEnum_PROMOTION_END PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 9
	// Data Type: STRING. Describes the associated event for the promotion using
	// one of the PromotionExtensionOccasion enum values, for example NEW_YEARS.
	PromotionPlaceholderFieldEnum_OCCASION PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 10
	// Data Type: URL_LIST. Final URLs to be used in the ad when using Upgraded
	// URLs.
	PromotionPlaceholderFieldEnum_FINAL_URLS PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 11
	// Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded
	// URLs.
	PromotionPlaceholderFieldEnum_FINAL_MOBILE_URLS PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 12
	// Data Type: URL. Tracking template for the ad when using Upgraded URLs.
	PromotionPlaceholderFieldEnum_TRACKING_URL PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 13
	// Data Type: STRING. A string represented by a language code for the
	// promotion.
	PromotionPlaceholderFieldEnum_LANGUAGE PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 14
	// Data Type: STRING. Final URL suffix for the ad when using parallel
	// tracking.
	PromotionPlaceholderFieldEnum_FINAL_URL_SUFFIX PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 15
)

var PromotionPlaceholderFieldEnum_PromotionPlaceholderField_name = map[int32]string{
	0:  "UNSPECIFIED",
	1:  "UNKNOWN",
	2:  "PROMOTION_TARGET",
	3:  "DISCOUNT_MODIFIER",
	4:  "PERCENT_OFF",
	5:  "MONEY_AMOUNT_OFF",
	6:  "PROMOTION_CODE",
	7:  "ORDERS_OVER_AMOUNT",
	8:  "PROMOTION_START",
	9:  "PROMOTION_END",
	10: "OCCASION",
	11: "FINAL_URLS",
	12: "FINAL_MOBILE_URLS",
	13: "TRACKING_URL",
	14: "LANGUAGE",
	15: "FINAL_URL_SUFFIX",
}

var PromotionPlaceholderFieldEnum_PromotionPlaceholderField_value = map[string]int32{
	"UNSPECIFIED":        0,
	"UNKNOWN":            1,
	"PROMOTION_TARGET":   2,
	"DISCOUNT_MODIFIER":  3,
	"PERCENT_OFF":        4,
	"MONEY_AMOUNT_OFF":   5,
	"PROMOTION_CODE":     6,
	"ORDERS_OVER_AMOUNT": 7,
	"PROMOTION_START":    8,
	"PROMOTION_END":      9,
	"OCCASION":           10,
	"FINAL_URLS":         11,
	"FINAL_MOBILE_URLS":  12,
	"TRACKING_URL":       13,
	"LANGUAGE":           14,
	"FINAL_URL_SUFFIX":   15,
}

func (x PromotionPlaceholderFieldEnum_PromotionPlaceholderField) String() string {
	return proto.EnumName(PromotionPlaceholderFieldEnum_PromotionPlaceholderField_name, int32(x))
}

func (PromotionPlaceholderFieldEnum_PromotionPlaceholderField) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_3144856f64c0e58c, []int{0, 0}
}

// Values for Promotion placeholder fields.
type PromotionPlaceholderFieldEnum struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PromotionPlaceholderFieldEnum) Reset()         { *m = PromotionPlaceholderFieldEnum{} }
func (m *PromotionPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) }
func (*PromotionPlaceholderFieldEnum) ProtoMessage()    {}
func (*PromotionPlaceholderFieldEnum) Descriptor() ([]byte, []int) {
	return fileDescriptor_3144856f64c0e58c, []int{0}
}

func (m *PromotionPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PromotionPlaceholderFieldEnum.Unmarshal(m, b)
}
func (m *PromotionPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PromotionPlaceholderFieldEnum.Marshal(b, m, deterministic)
}
func (m *PromotionPlaceholderFieldEnum) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PromotionPlaceholderFieldEnum.Merge(m, src)
}
func (m *PromotionPlaceholderFieldEnum) XXX_Size() int {
	return xxx_messageInfo_PromotionPlaceholderFieldEnum.Size(m)
}
func (m *PromotionPlaceholderFieldEnum) XXX_DiscardUnknown() {
	xxx_messageInfo_PromotionPlaceholderFieldEnum.DiscardUnknown(m)
}

var xxx_messageInfo_PromotionPlaceholderFieldEnum proto.InternalMessageInfo

func init() {
	proto.RegisterEnum("google.ads.googleads.v3.enums.PromotionPlaceholderFieldEnum_PromotionPlaceholderField", PromotionPlaceholderFieldEnum_PromotionPlaceholderField_name, PromotionPlaceholderFieldEnum_PromotionPlaceholderField_value)
	proto.RegisterType((*PromotionPlaceholderFieldEnum)(nil), "google.ads.googleads.v3.enums.PromotionPlaceholderFieldEnum")
}

func init() {
	proto.RegisterFile("google/ads/googleads/v3/enums/promotion_placeholder_field.proto", fileDescriptor_3144856f64c0e58c)
}

var fileDescriptor_3144856f64c0e58c = []byte{
	// 474 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xcd, 0x6e, 0x9b, 0x40,
	0x10, 0xc7, 0x6b, 0xd2, 0x26, 0xe9, 0xda, 0xb1, 0x37, 0xdb, 0x0f, 0xa9, 0x55, 0x5d, 0x29, 0x79,
	0x00, 0x38, 0x70, 0xa3, 0x87, 0x6a, 0x0d, 0x0b, 0x42, 0x31, 0xbb, 0x68, 0x01, 0xf7, 0x43, 0x96,
	0x56, 0x34, 0x50, 0x6a, 0x09, 0xb3, 0xc8, 0xeb, 0xe4, 0x81, 0x7a, 0xec, 0xa3, 0x54, 0x7d, 0x92,
	0x1e, 0x7a, 0xe9, 0x0b, 0x54, 0x0b, 0xb1, 0x7d, 0x72, 0x2f, 0x68, 0xf8, 0xcf, 0x7f, 0x7e, 0x33,
	0xda, 0x19, 0xf0, 0xbe, 0x92, 0xb2, 0xaa, 0x4b, 0x2b, 0x2f, 0x94, 0xd5, 0x87, 0x3a, 0xba, 0xb7,
	0xad, 0xb2, 0xb9, 0x5b, 0x2b, 0xab, 0xdd, 0xc8, 0xb5, 0xdc, 0xae, 0x64, 0x23, 0xda, 0x3a, 0xbf,
	0x2d, 0xbf, 0xc9, 0xba, 0x28, 0x37, 0xe2, 0xeb, 0xaa, 0xac, 0x0b, 0xb3, 0xdd, 0xc8, 0xad, 0x44,
	0xd3, 0xbe, 0xca, 0xcc, 0x0b, 0x65, 0xee, 0x01, 0xe6, 0xbd, 0x6d, 0x76, 0x80, 0xd7, 0x6f, 0x76,
	0xfc, 0x76, 0x65, 0xe5, 0x4d, 0x23, 0xb7, 0xb9, 0xa6, 0xa9, 0xbe, 0xf8, 0xfa, 0x8f, 0x01, 0xa6,
	0xf1, 0xae, 0x45, 0x7c, 0xe8, 0xe0, 0xeb, 0x06, 0xa4, 0xb9, 0x5b, 0x5f, 0xff, 0x32, 0xc0, 0xab,
	0xa3, 0x0e, 0x34, 0x01, 0xc3, 0x8c, 0x26, 0x31, 0x71, 0x43, 0x3f, 0x24, 0x1e, 0x7c, 0x84, 0x86,
	0xe0, 0x2c, 0xa3, 0x37, 0x94, 0x7d, 0xa0, 0x70, 0x80, 0x9e, 0x03, 0x18, 0x73, 0x16, 0xb1, 0x34,
	0x64, 0x54, 0xa4, 0x98, 0x07, 0x24, 0x85, 0x06, 0x7a, 0x01, 0x2e, 0xbd, 0x30, 0x71, 0x59, 0x46,
	0x53, 0x11, 0x31, 0x4f, 0x57, 0x72, 0x78, 0xa2, 0x51, 0x31, 0xe1, 0x2e, 0xa1, 0xa9, 0x60, 0xbe,
	0x0f, 0x1f, 0xeb, 0xea, 0x88, 0x51, 0xf2, 0x49, 0xe0, 0xa8, 0xf3, 0x6a, 0xf5, 0x09, 0x42, 0x60,
	0x7c, 0x60, 0xba, 0xcc, 0x23, 0xf0, 0x14, 0xbd, 0x04, 0x88, 0x71, 0x8f, 0xf0, 0x44, 0xb0, 0x05,
	0xe1, 0x0f, 0x7e, 0x78, 0x86, 0x9e, 0x81, 0xc9, 0xc1, 0x9b, 0xa4, 0x98, 0xa7, 0xf0, 0x1c, 0x5d,
	0x82, 0x8b, 0x83, 0x48, 0xa8, 0x07, 0x9f, 0xa2, 0x11, 0x38, 0x67, 0xae, 0x8b, 0x93, 0x90, 0x51,
	0x08, 0xd0, 0x18, 0x00, 0x3f, 0xa4, 0x78, 0x2e, 0x32, 0x3e, 0x4f, 0xe0, 0x50, 0xcf, 0xdb, 0xff,
	0x47, 0x6c, 0x16, 0xce, 0x49, 0x2f, 0x8f, 0x10, 0x04, 0xa3, 0x94, 0x63, 0xf7, 0x26, 0xa4, 0x81,
	0x96, 0xe0, 0x85, 0xc6, 0xcc, 0x31, 0x0d, 0x32, 0x1c, 0x10, 0x38, 0xd6, 0xe3, 0xef, 0x31, 0x22,
	0xc9, 0x7c, 0x3f, 0xfc, 0x08, 0x27, 0xb3, 0xbf, 0x03, 0x70, 0x75, 0x2b, 0xd7, 0xe6, 0x7f, 0x97,
	0x36, 0x7b, 0x7b, 0xf4, 0xc5, 0x63, 0xbd, 0xb6, 0x78, 0xf0, 0x79, 0xf6, 0x00, 0xa8, 0x64, 0x9d,
	0x37, 0x95, 0x29, 0x37, 0x95, 0x55, 0x95, 0x4d, 0xb7, 0xd4, 0xdd, 0x19, 0xb5, 0x2b, 0x75, 0xe4,
	0xaa, 0xde, 0x75, 0xdf, 0xef, 0xc6, 0x49, 0x80, 0xf1, 0x0f, 0x63, 0x1a, 0xf4, 0x28, 0x5c, 0x28,
	0xb3, 0x0f, 0x75, 0xb4, 0xb0, 0x4d, 0xbd, 0x7f, 0xf5, 0x73, 0x97, 0x5f, 0xe2, 0x42, 0x2d, 0xf7,
	0xf9, 0xe5, 0xc2, 0x5e, 0x76, 0xf9, 0xdf, 0xc6, 0x55, 0x2f, 0x3a, 0x0e, 0x2e, 0x94, 0xe3, 0xec,
	0x1d, 0x8e, 0xb3, 0xb0, 0x1d, 0xa7, 0xf3, 0x7c, 0x39, 0xed, 0x06, 0xb3, 0xff, 0x05, 0x00, 0x00,
	0xff, 0xff, 0xe8, 0x56, 0xe2, 0xac, 0xed, 0x02, 0x00, 0x00,
}
