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

package errors

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

// 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 feed item errors.
type FeedMappingErrorEnum_FeedMappingError int32

const (
	// Enum unspecified.
	FeedMappingErrorEnum_UNSPECIFIED FeedMappingErrorEnum_FeedMappingError = 0
	// The received error code is not known in this version.
	FeedMappingErrorEnum_UNKNOWN FeedMappingErrorEnum_FeedMappingError = 1
	// The given placeholder field does not exist.
	FeedMappingErrorEnum_INVALID_PLACEHOLDER_FIELD FeedMappingErrorEnum_FeedMappingError = 2
	// The given criterion field does not exist.
	FeedMappingErrorEnum_INVALID_CRITERION_FIELD FeedMappingErrorEnum_FeedMappingError = 3
	// The given placeholder type does not exist.
	FeedMappingErrorEnum_INVALID_PLACEHOLDER_TYPE FeedMappingErrorEnum_FeedMappingError = 4
	// The given criterion type does not exist.
	FeedMappingErrorEnum_INVALID_CRITERION_TYPE FeedMappingErrorEnum_FeedMappingError = 5
	// A feed mapping must contain at least one attribute field mapping.
	FeedMappingErrorEnum_NO_ATTRIBUTE_FIELD_MAPPINGS FeedMappingErrorEnum_FeedMappingError = 7
	// The type of the feed attribute referenced in the attribute field mapping
	// must match the type of the placeholder field.
	FeedMappingErrorEnum_FEED_ATTRIBUTE_TYPE_MISMATCH FeedMappingErrorEnum_FeedMappingError = 8
	// A feed mapping for a system generated feed cannot be operated on.
	FeedMappingErrorEnum_CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED FeedMappingErrorEnum_FeedMappingError = 9
	// Only one feed mapping for a placeholder type is allowed per feed or
	// customer (depending on the placeholder type).
	FeedMappingErrorEnum_MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE FeedMappingErrorEnum_FeedMappingError = 10
	// Only one feed mapping for a criterion type is allowed per customer.
	FeedMappingErrorEnum_MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE FeedMappingErrorEnum_FeedMappingError = 11
	// Only one feed attribute mapping for a placeholder field is allowed
	// (depending on the placeholder type).
	FeedMappingErrorEnum_MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD FeedMappingErrorEnum_FeedMappingError = 12
	// Only one feed attribute mapping for a criterion field is allowed
	// (depending on the criterion type).
	FeedMappingErrorEnum_MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD FeedMappingErrorEnum_FeedMappingError = 13
	// This feed mapping may not contain any explicit attribute field mappings.
	FeedMappingErrorEnum_UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS FeedMappingErrorEnum_FeedMappingError = 14
	// Location placeholder feed mappings can only be created for Places feeds.
	FeedMappingErrorEnum_LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS FeedMappingErrorEnum_FeedMappingError = 15
	// Mappings for typed feeds cannot be modified.
	FeedMappingErrorEnum_CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED FeedMappingErrorEnum_FeedMappingError = 16
	// The given placeholder type can only be mapped to system generated feeds.
	FeedMappingErrorEnum_INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED FeedMappingErrorEnum_FeedMappingError = 17
	// The given placeholder type cannot be mapped to a system generated feed
	// with the given type.
	FeedMappingErrorEnum_INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE FeedMappingErrorEnum_FeedMappingError = 18
)

var FeedMappingErrorEnum_FeedMappingError_name = map[int32]string{
	0:  "UNSPECIFIED",
	1:  "UNKNOWN",
	2:  "INVALID_PLACEHOLDER_FIELD",
	3:  "INVALID_CRITERION_FIELD",
	4:  "INVALID_PLACEHOLDER_TYPE",
	5:  "INVALID_CRITERION_TYPE",
	7:  "NO_ATTRIBUTE_FIELD_MAPPINGS",
	8:  "FEED_ATTRIBUTE_TYPE_MISMATCH",
	9:  "CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED",
	10: "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE",
	11: "MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE",
	12: "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD",
	13: "MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD",
	14: "UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS",
	15: "LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS",
	16: "CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED",
	17: "INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED",
	18: "INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE",
}

var FeedMappingErrorEnum_FeedMappingError_value = map[string]int32{
	"UNSPECIFIED":                  0,
	"UNKNOWN":                      1,
	"INVALID_PLACEHOLDER_FIELD":    2,
	"INVALID_CRITERION_FIELD":      3,
	"INVALID_PLACEHOLDER_TYPE":     4,
	"INVALID_CRITERION_TYPE":       5,
	"NO_ATTRIBUTE_FIELD_MAPPINGS":  7,
	"FEED_ATTRIBUTE_TYPE_MISMATCH": 8,
	"CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED":    9,
	"MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE":                  10,
	"MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE":                    11,
	"MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD":                 12,
	"MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD":                   13,
	"UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS":                     14,
	"LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS":              15,
	"CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED":                   16,
	"INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED":  17,
	"INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE": 18,
}

func (x FeedMappingErrorEnum_FeedMappingError) String() string {
	return proto.EnumName(FeedMappingErrorEnum_FeedMappingError_name, int32(x))
}

func (FeedMappingErrorEnum_FeedMappingError) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_9206d9cdd1c4813c, []int{0, 0}
}

// Container for enum describing possible feed item errors.
type FeedMappingErrorEnum struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_FeedMappingErrorEnum proto.InternalMessageInfo

func init() {
	proto.RegisterEnum("google.ads.googleads.v2.errors.FeedMappingErrorEnum_FeedMappingError", FeedMappingErrorEnum_FeedMappingError_name, FeedMappingErrorEnum_FeedMappingError_value)
	proto.RegisterType((*FeedMappingErrorEnum)(nil), "google.ads.googleads.v2.errors.FeedMappingErrorEnum")
}

func init() {
	proto.RegisterFile("google/ads/googleads/v2/errors/feed_mapping_error.proto", fileDescriptor_9206d9cdd1c4813c)
}

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