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

package errors

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

// Enum describing possible extension setting errors.
type ExtensionSettingErrorEnum_ExtensionSettingError int32

const (
	// Enum unspecified.
	ExtensionSettingErrorEnum_UNSPECIFIED ExtensionSettingErrorEnum_ExtensionSettingError = 0
	// The received error code is not known in this version.
	ExtensionSettingErrorEnum_UNKNOWN ExtensionSettingErrorEnum_ExtensionSettingError = 1
	// A platform restriction was provided without input extensions or existing
	// extensions.
	ExtensionSettingErrorEnum_EXTENSIONS_REQUIRED ExtensionSettingErrorEnum_ExtensionSettingError = 2
	// The provided feed type does not correspond to the provided extensions.
	ExtensionSettingErrorEnum_FEED_TYPE_EXTENSION_TYPE_MISMATCH ExtensionSettingErrorEnum_ExtensionSettingError = 3
	// The provided feed type cannot be used.
	ExtensionSettingErrorEnum_INVALID_FEED_TYPE ExtensionSettingErrorEnum_ExtensionSettingError = 4
	// The provided feed type cannot be used at the customer level.
	ExtensionSettingErrorEnum_INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING ExtensionSettingErrorEnum_ExtensionSettingError = 5
	// Cannot change a feed item field on a CREATE operation.
	ExtensionSettingErrorEnum_CANNOT_CHANGE_FEED_ITEM_ON_CREATE ExtensionSettingErrorEnum_ExtensionSettingError = 6
	// Cannot update an extension that is not already in this setting.
	ExtensionSettingErrorEnum_CANNOT_UPDATE_NEWLY_CREATED_EXTENSION ExtensionSettingErrorEnum_ExtensionSettingError = 7
	// There is no existing AdGroupExtensionSetting for this type.
	ExtensionSettingErrorEnum_NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE ExtensionSettingErrorEnum_ExtensionSettingError = 8
	// There is no existing CampaignExtensionSetting for this type.
	ExtensionSettingErrorEnum_NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE ExtensionSettingErrorEnum_ExtensionSettingError = 9
	// There is no existing CustomerExtensionSetting for this type.
	ExtensionSettingErrorEnum_NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE ExtensionSettingErrorEnum_ExtensionSettingError = 10
	// The AdGroupExtensionSetting already exists. UPDATE should be used to
	// modify the existing AdGroupExtensionSetting.
	ExtensionSettingErrorEnum_AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS ExtensionSettingErrorEnum_ExtensionSettingError = 11
	// The CampaignExtensionSetting already exists. UPDATE should be used to
	// modify the existing CampaignExtensionSetting.
	ExtensionSettingErrorEnum_CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS ExtensionSettingErrorEnum_ExtensionSettingError = 12
	// The CustomerExtensionSetting already exists. UPDATE should be used to
	// modify the existing CustomerExtensionSetting.
	ExtensionSettingErrorEnum_CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS ExtensionSettingErrorEnum_ExtensionSettingError = 13
	// An active ad group feed already exists for this place holder type.
	ExtensionSettingErrorEnum_AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE ExtensionSettingErrorEnum_ExtensionSettingError = 14
	// An active campaign feed already exists for this place holder type.
	ExtensionSettingErrorEnum_CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE ExtensionSettingErrorEnum_ExtensionSettingError = 15
	// An active customer feed already exists for this place holder type.
	ExtensionSettingErrorEnum_CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE ExtensionSettingErrorEnum_ExtensionSettingError = 16
	// Value is not within the accepted range.
	ExtensionSettingErrorEnum_VALUE_OUT_OF_RANGE ExtensionSettingErrorEnum_ExtensionSettingError = 17
	// Cannot simultaneously set specified field with final urls.
	ExtensionSettingErrorEnum_CANNOT_SET_FIELD_WITH_FINAL_URLS ExtensionSettingErrorEnum_ExtensionSettingError = 18
	// Must set field with final urls.
	ExtensionSettingErrorEnum_FINAL_URLS_NOT_SET ExtensionSettingErrorEnum_ExtensionSettingError = 19
	// Phone number for a call extension is invalid.
	ExtensionSettingErrorEnum_INVALID_PHONE_NUMBER ExtensionSettingErrorEnum_ExtensionSettingError = 20
	// Phone number for a call extension is not supported for the given country
	// code.
	ExtensionSettingErrorEnum_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY ExtensionSettingErrorEnum_ExtensionSettingError = 21
	// A carrier specific number in short format is not allowed for call
	// extensions.
	ExtensionSettingErrorEnum_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED ExtensionSettingErrorEnum_ExtensionSettingError = 22
	// Premium rate numbers are not allowed for call extensions.
	ExtensionSettingErrorEnum_PREMIUM_RATE_NUMBER_NOT_ALLOWED ExtensionSettingErrorEnum_ExtensionSettingError = 23
	// Phone number type for a call extension is not allowed.
	ExtensionSettingErrorEnum_DISALLOWED_NUMBER_TYPE ExtensionSettingErrorEnum_ExtensionSettingError = 24
	// Phone number for a call extension does not meet domestic format
	// requirements.
	ExtensionSettingErrorEnum_INVALID_DOMESTIC_PHONE_NUMBER_FORMAT ExtensionSettingErrorEnum_ExtensionSettingError = 25
	// Vanity phone numbers (i.e. those including letters) are not allowed for
	// call extensions.
	ExtensionSettingErrorEnum_VANITY_PHONE_NUMBER_NOT_ALLOWED ExtensionSettingErrorEnum_ExtensionSettingError = 26
	// Country code provided for a call extension is invalid.
	ExtensionSettingErrorEnum_INVALID_COUNTRY_CODE ExtensionSettingErrorEnum_ExtensionSettingError = 27
	// Call conversion type id provided for a call extension is invalid.
	ExtensionSettingErrorEnum_INVALID_CALL_CONVERSION_TYPE_ID ExtensionSettingErrorEnum_ExtensionSettingError = 28
	// For a call extension, the customer is not whitelisted for call tracking.
	ExtensionSettingErrorEnum_CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING ExtensionSettingErrorEnum_ExtensionSettingError = 29
	// Call tracking is not supported for the given country for a call
	// extension.
	ExtensionSettingErrorEnum_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY ExtensionSettingErrorEnum_ExtensionSettingError = 30
	// App id provided for an app extension is invalid.
	ExtensionSettingErrorEnum_INVALID_APP_ID ExtensionSettingErrorEnum_ExtensionSettingError = 31
	// Quotation marks present in the review text for a review extension.
	ExtensionSettingErrorEnum_QUOTES_IN_REVIEW_EXTENSION_SNIPPET ExtensionSettingErrorEnum_ExtensionSettingError = 32
	// Hyphen character present in the review text for a review extension.
	ExtensionSettingErrorEnum_HYPHENS_IN_REVIEW_EXTENSION_SNIPPET ExtensionSettingErrorEnum_ExtensionSettingError = 33
	// A blacklisted review source name or url was provided for a review
	// extension.
	ExtensionSettingErrorEnum_REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE ExtensionSettingErrorEnum_ExtensionSettingError = 34
	// Review source name should not be found in the review text.
	ExtensionSettingErrorEnum_SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT ExtensionSettingErrorEnum_ExtensionSettingError = 35
	// Field must be set.
	ExtensionSettingErrorEnum_MISSING_FIELD ExtensionSettingErrorEnum_ExtensionSettingError = 36
	// Inconsistent currency codes.
	ExtensionSettingErrorEnum_INCONSISTENT_CURRENCY_CODES ExtensionSettingErrorEnum_ExtensionSettingError = 37
	// Price extension cannot have duplicated headers.
	ExtensionSettingErrorEnum_PRICE_EXTENSION_HAS_DUPLICATED_HEADERS ExtensionSettingErrorEnum_ExtensionSettingError = 38
	// Price item cannot have duplicated header and description.
	ExtensionSettingErrorEnum_PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION ExtensionSettingErrorEnum_ExtensionSettingError = 39
	// Price extension has too few items
	ExtensionSettingErrorEnum_PRICE_EXTENSION_HAS_TOO_FEW_ITEMS ExtensionSettingErrorEnum_ExtensionSettingError = 40
	// Price extension has too many items
	ExtensionSettingErrorEnum_PRICE_EXTENSION_HAS_TOO_MANY_ITEMS ExtensionSettingErrorEnum_ExtensionSettingError = 41
	// The input value is not currently supported.
	ExtensionSettingErrorEnum_UNSUPPORTED_VALUE ExtensionSettingErrorEnum_ExtensionSettingError = 42
	// Unknown or unsupported device preference.
	ExtensionSettingErrorEnum_INVALID_DEVICE_PREFERENCE ExtensionSettingErrorEnum_ExtensionSettingError = 43
	// Invalid feed item schedule end time (i.e., endHour = 24 and
	// endMinute != 0).
	ExtensionSettingErrorEnum_INVALID_SCHEDULE_END ExtensionSettingErrorEnum_ExtensionSettingError = 45
	// Date time zone does not match the account's time zone.
	ExtensionSettingErrorEnum_DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE ExtensionSettingErrorEnum_ExtensionSettingError = 47
	// Overlapping feed item schedule times (e.g., 7-10AM and 8-11AM) are not
	// allowed.
	ExtensionSettingErrorEnum_OVERLAPPING_SCHEDULES_NOT_ALLOWED ExtensionSettingErrorEnum_ExtensionSettingError = 48
	// Feed item schedule end time must be after start time.
	ExtensionSettingErrorEnum_SCHEDULE_END_NOT_AFTER_START ExtensionSettingErrorEnum_ExtensionSettingError = 49
	// There are too many feed item schedules per day.
	ExtensionSettingErrorEnum_TOO_MANY_SCHEDULES_PER_DAY ExtensionSettingErrorEnum_ExtensionSettingError = 50
	// Cannot edit the same extension feed item more than once in the same
	// request.
	ExtensionSettingErrorEnum_DUPLICATE_EXTENSION_FEED_ITEM_EDIT ExtensionSettingErrorEnum_ExtensionSettingError = 51
	// Invalid structured snippet header.
	ExtensionSettingErrorEnum_INVALID_SNIPPETS_HEADER ExtensionSettingErrorEnum_ExtensionSettingError = 52
	// Phone number with call tracking enabled is not supported for the
	// specified country.
	ExtensionSettingErrorEnum_PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY ExtensionSettingErrorEnum_ExtensionSettingError = 53
	// The targeted adgroup must belong to the targeted campaign.
	ExtensionSettingErrorEnum_CAMPAIGN_TARGETING_MISMATCH ExtensionSettingErrorEnum_ExtensionSettingError = 54
	// The feed used by the ExtensionSetting is removed and cannot be operated
	// on. Remove the ExtensionSetting to allow a new one to be created using
	// an active feed.
	ExtensionSettingErrorEnum_CANNOT_OPERATE_ON_REMOVED_FEED ExtensionSettingErrorEnum_ExtensionSettingError = 55
	// The ExtensionFeedItem type is required for this operation.
	ExtensionSettingErrorEnum_EXTENSION_TYPE_REQUIRED ExtensionSettingErrorEnum_ExtensionSettingError = 56
	// The matching function that links the extension feed to the customer,
	// campaign, or ad group is not compatible with the ExtensionSetting
	// services.
	ExtensionSettingErrorEnum_INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION ExtensionSettingErrorEnum_ExtensionSettingError = 57
	// Start date must be before end date.
	ExtensionSettingErrorEnum_START_DATE_AFTER_END_DATE ExtensionSettingErrorEnum_ExtensionSettingError = 58
	// Input price is not in a valid format.
	ExtensionSettingErrorEnum_INVALID_PRICE_FORMAT ExtensionSettingErrorEnum_ExtensionSettingError = 59
	// The promotion time is invalid.
	ExtensionSettingErrorEnum_PROMOTION_INVALID_TIME ExtensionSettingErrorEnum_ExtensionSettingError = 60
	// Cannot set both percent discount and money discount fields.
	ExtensionSettingErrorEnum_PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT ExtensionSettingErrorEnum_ExtensionSettingError = 61
	// Cannot set both promotion code and orders over amount fields.
	ExtensionSettingErrorEnum_PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT ExtensionSettingErrorEnum_ExtensionSettingError = 62
	// This field has too many decimal places specified.
	ExtensionSettingErrorEnum_TOO_MANY_DECIMAL_PLACES_SPECIFIED ExtensionSettingErrorEnum_ExtensionSettingError = 63
	// The language code is not valid.
	ExtensionSettingErrorEnum_INVALID_LANGUAGE_CODE ExtensionSettingErrorEnum_ExtensionSettingError = 64
	// The language is not supported.
	ExtensionSettingErrorEnum_UNSUPPORTED_LANGUAGE ExtensionSettingErrorEnum_ExtensionSettingError = 65
	// Customer hasn't consented for call recording, which is required for
	// adding/updating call extensions. Please see
	// https://support.google.com/google-ads/answer/7412639.
	ExtensionSettingErrorEnum_CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED ExtensionSettingErrorEnum_ExtensionSettingError = 66
	// The UPDATE operation does not specify any fields other than the resource
	// name in the update mask.
	ExtensionSettingErrorEnum_EXTENSION_SETTING_UPDATE_IS_A_NOOP ExtensionSettingErrorEnum_ExtensionSettingError = 67
)

var ExtensionSettingErrorEnum_ExtensionSettingError_name = map[int32]string{
	0:  "UNSPECIFIED",
	1:  "UNKNOWN",
	2:  "EXTENSIONS_REQUIRED",
	3:  "FEED_TYPE_EXTENSION_TYPE_MISMATCH",
	4:  "INVALID_FEED_TYPE",
	5:  "INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING",
	6:  "CANNOT_CHANGE_FEED_ITEM_ON_CREATE",
	7:  "CANNOT_UPDATE_NEWLY_CREATED_EXTENSION",
	8:  "NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE",
	9:  "NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE",
	10: "NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE",
	11: "AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS",
	12: "CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS",
	13: "CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS",
	14: "AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE",
	15: "CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE",
	16: "CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE",
	17: "VALUE_OUT_OF_RANGE",
	18: "CANNOT_SET_FIELD_WITH_FINAL_URLS",
	19: "FINAL_URLS_NOT_SET",
	20: "INVALID_PHONE_NUMBER",
	21: "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY",
	22: "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED",
	23: "PREMIUM_RATE_NUMBER_NOT_ALLOWED",
	24: "DISALLOWED_NUMBER_TYPE",
	25: "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT",
	26: "VANITY_PHONE_NUMBER_NOT_ALLOWED",
	27: "INVALID_COUNTRY_CODE",
	28: "INVALID_CALL_CONVERSION_TYPE_ID",
	29: "CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING",
	30: "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
	31: "INVALID_APP_ID",
	32: "QUOTES_IN_REVIEW_EXTENSION_SNIPPET",
	33: "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET",
	34: "REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE",
	35: "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT",
	36: "MISSING_FIELD",
	37: "INCONSISTENT_CURRENCY_CODES",
	38: "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS",
	39: "PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION",
	40: "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS",
	41: "PRICE_EXTENSION_HAS_TOO_MANY_ITEMS",
	42: "UNSUPPORTED_VALUE",
	43: "INVALID_DEVICE_PREFERENCE",
	45: "INVALID_SCHEDULE_END",
	47: "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE",
	48: "OVERLAPPING_SCHEDULES_NOT_ALLOWED",
	49: "SCHEDULE_END_NOT_AFTER_START",
	50: "TOO_MANY_SCHEDULES_PER_DAY",
	51: "DUPLICATE_EXTENSION_FEED_ITEM_EDIT",
	52: "INVALID_SNIPPETS_HEADER",
	53: "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY",
	54: "CAMPAIGN_TARGETING_MISMATCH",
	55: "CANNOT_OPERATE_ON_REMOVED_FEED",
	56: "EXTENSION_TYPE_REQUIRED",
	57: "INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION",
	58: "START_DATE_AFTER_END_DATE",
	59: "INVALID_PRICE_FORMAT",
	60: "PROMOTION_INVALID_TIME",
	61: "PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT",
	62: "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT",
	63: "TOO_MANY_DECIMAL_PLACES_SPECIFIED",
	64: "INVALID_LANGUAGE_CODE",
	65: "UNSUPPORTED_LANGUAGE",
	66: "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED",
	67: "EXTENSION_SETTING_UPDATE_IS_A_NOOP",
}

var ExtensionSettingErrorEnum_ExtensionSettingError_value = map[string]int32{
	"UNSPECIFIED":                       0,
	"UNKNOWN":                           1,
	"EXTENSIONS_REQUIRED":               2,
	"FEED_TYPE_EXTENSION_TYPE_MISMATCH": 3,
	"INVALID_FEED_TYPE":                 4,
	"INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING":           5,
	"CANNOT_CHANGE_FEED_ITEM_ON_CREATE":                          6,
	"CANNOT_UPDATE_NEWLY_CREATED_EXTENSION":                      7,
	"NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE":            8,
	"NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE":            9,
	"NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE":            10,
	"AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS":                  11,
	"CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS":                  12,
	"CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS":                  13,
	"AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE":          14,
	"CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE":          15,
	"CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE":          16,
	"VALUE_OUT_OF_RANGE":                                         17,
	"CANNOT_SET_FIELD_WITH_FINAL_URLS":                           18,
	"FINAL_URLS_NOT_SET":                                         19,
	"INVALID_PHONE_NUMBER":                                       20,
	"PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY":                     21,
	"CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED":                  22,
	"PREMIUM_RATE_NUMBER_NOT_ALLOWED":                            23,
	"DISALLOWED_NUMBER_TYPE":                                     24,
	"INVALID_DOMESTIC_PHONE_NUMBER_FORMAT":                       25,
	"VANITY_PHONE_NUMBER_NOT_ALLOWED":                            26,
	"INVALID_COUNTRY_CODE":                                       27,
	"INVALID_CALL_CONVERSION_TYPE_ID":                            28,
	"CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING":                  29,
	"CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY":                     30,
	"INVALID_APP_ID":                                             31,
	"QUOTES_IN_REVIEW_EXTENSION_SNIPPET":                         32,
	"HYPHENS_IN_REVIEW_EXTENSION_SNIPPET":                        33,
	"REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE":                       34,
	"SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT":                       35,
	"MISSING_FIELD":                                              36,
	"INCONSISTENT_CURRENCY_CODES":                                37,
	"PRICE_EXTENSION_HAS_DUPLICATED_HEADERS":                     38,
	"PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION":           39,
	"PRICE_EXTENSION_HAS_TOO_FEW_ITEMS":                          40,
	"PRICE_EXTENSION_HAS_TOO_MANY_ITEMS":                         41,
	"UNSUPPORTED_VALUE":                                          42,
	"INVALID_DEVICE_PREFERENCE":                                  43,
	"INVALID_SCHEDULE_END":                                       45,
	"DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE":                     47,
	"OVERLAPPING_SCHEDULES_NOT_ALLOWED":                          48,
	"SCHEDULE_END_NOT_AFTER_START":                               49,
	"TOO_MANY_SCHEDULES_PER_DAY":                                 50,
	"DUPLICATE_EXTENSION_FEED_ITEM_EDIT":                         51,
	"INVALID_SNIPPETS_HEADER":                                    52,
	"PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY":   53,
	"CAMPAIGN_TARGETING_MISMATCH":                                54,
	"CANNOT_OPERATE_ON_REMOVED_FEED":                             55,
	"EXTENSION_TYPE_REQUIRED":                                    56,
	"INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION":                  57,
	"START_DATE_AFTER_END_DATE":                                  58,
	"INVALID_PRICE_FORMAT":                                       59,
	"PROMOTION_INVALID_TIME":                                     60,
	"PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT":   61,
	"PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT": 62,
	"TOO_MANY_DECIMAL_PLACES_SPECIFIED":                          63,
	"INVALID_LANGUAGE_CODE":                                      64,
	"UNSUPPORTED_LANGUAGE":                                       65,
	"CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED":               66,
	"EXTENSION_SETTING_UPDATE_IS_A_NOOP":                         67,
}

func (x ExtensionSettingErrorEnum_ExtensionSettingError) String() string {
	return proto.EnumName(ExtensionSettingErrorEnum_ExtensionSettingError_name, int32(x))
}

func (ExtensionSettingErrorEnum_ExtensionSettingError) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_a1c5b67ed36c3d9a, []int{0, 0}
}

// Container for enum describing validation errors of extension settings.
type ExtensionSettingErrorEnum struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ExtensionSettingErrorEnum proto.InternalMessageInfo

func init() {
	proto.RegisterEnum("google.ads.googleads.v3.errors.ExtensionSettingErrorEnum_ExtensionSettingError", ExtensionSettingErrorEnum_ExtensionSettingError_name, ExtensionSettingErrorEnum_ExtensionSettingError_value)
	proto.RegisterType((*ExtensionSettingErrorEnum)(nil), "google.ads.googleads.v3.errors.ExtensionSettingErrorEnum")
}

func init() {
	proto.RegisterFile("google/ads/googleads/v3/errors/extension_setting_error.proto", fileDescriptor_a1c5b67ed36c3d9a)
}

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