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

package resources

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	common "google.golang.org/genproto/googleapis/ads/googleads/v3/common"
	enums "google.golang.org/genproto/googleapis/ads/googleads/v3/enums"
	_ "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

// A feed item target.
type FeedItemTarget struct {
	// The resource name of the feed item target.
	// Feed item target resource names have the form:
	// `customers/{customer_id}/feedItemTargets/{feed_id}~{feed_item_id}~{feed_item_target_type}~{feed_item_target_id}`
	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	// The feed item to which this feed item target belongs.
	FeedItem *wrappers.StringValue `protobuf:"bytes,2,opt,name=feed_item,json=feedItem,proto3" json:"feed_item,omitempty"`
	// The target type of this feed item target. This field is read-only.
	FeedItemTargetType enums.FeedItemTargetTypeEnum_FeedItemTargetType `protobuf:"varint,3,opt,name=feed_item_target_type,json=feedItemTargetType,proto3,enum=google.ads.googleads.v3.enums.FeedItemTargetTypeEnum_FeedItemTargetType" json:"feed_item_target_type,omitempty"`
	// The ID of the targeted resource. This field is read-only.
	FeedItemTargetId *wrappers.Int64Value `protobuf:"bytes,6,opt,name=feed_item_target_id,json=feedItemTargetId,proto3" json:"feed_item_target_id,omitempty"`
	// Status of the feed item target.
	// This field is read-only.
	Status enums.FeedItemTargetStatusEnum_FeedItemTargetStatus `protobuf:"varint,11,opt,name=status,proto3,enum=google.ads.googleads.v3.enums.FeedItemTargetStatusEnum_FeedItemTargetStatus" json:"status,omitempty"`
	// The targeted resource.
	//
	// Types that are valid to be assigned to Target:
	//	*FeedItemTarget_Campaign
	//	*FeedItemTarget_AdGroup
	//	*FeedItemTarget_Keyword
	//	*FeedItemTarget_GeoTargetConstant
	//	*FeedItemTarget_Device
	//	*FeedItemTarget_AdSchedule
	Target               isFeedItemTarget_Target `protobuf_oneof:"target"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

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

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

var xxx_messageInfo_FeedItemTarget proto.InternalMessageInfo

func (m *FeedItemTarget) GetResourceName() string {
	if m != nil {
		return m.ResourceName
	}
	return ""
}

func (m *FeedItemTarget) GetFeedItem() *wrappers.StringValue {
	if m != nil {
		return m.FeedItem
	}
	return nil
}

func (m *FeedItemTarget) GetFeedItemTargetType() enums.FeedItemTargetTypeEnum_FeedItemTargetType {
	if m != nil {
		return m.FeedItemTargetType
	}
	return enums.FeedItemTargetTypeEnum_UNSPECIFIED
}

func (m *FeedItemTarget) GetFeedItemTargetId() *wrappers.Int64Value {
	if m != nil {
		return m.FeedItemTargetId
	}
	return nil
}

func (m *FeedItemTarget) GetStatus() enums.FeedItemTargetStatusEnum_FeedItemTargetStatus {
	if m != nil {
		return m.Status
	}
	return enums.FeedItemTargetStatusEnum_UNSPECIFIED
}

type isFeedItemTarget_Target interface {
	isFeedItemTarget_Target()
}

type FeedItemTarget_Campaign struct {
	Campaign *wrappers.StringValue `protobuf:"bytes,4,opt,name=campaign,proto3,oneof"`
}

type FeedItemTarget_AdGroup struct {
	AdGroup *wrappers.StringValue `protobuf:"bytes,5,opt,name=ad_group,json=adGroup,proto3,oneof"`
}

type FeedItemTarget_Keyword struct {
	Keyword *common.KeywordInfo `protobuf:"bytes,7,opt,name=keyword,proto3,oneof"`
}

type FeedItemTarget_GeoTargetConstant struct {
	GeoTargetConstant *wrappers.StringValue `protobuf:"bytes,8,opt,name=geo_target_constant,json=geoTargetConstant,proto3,oneof"`
}

type FeedItemTarget_Device struct {
	Device enums.FeedItemTargetDeviceEnum_FeedItemTargetDevice `protobuf:"varint,9,opt,name=device,proto3,enum=google.ads.googleads.v3.enums.FeedItemTargetDeviceEnum_FeedItemTargetDevice,oneof"`
}

type FeedItemTarget_AdSchedule struct {
	AdSchedule *common.AdScheduleInfo `protobuf:"bytes,10,opt,name=ad_schedule,json=adSchedule,proto3,oneof"`
}

func (*FeedItemTarget_Campaign) isFeedItemTarget_Target() {}

func (*FeedItemTarget_AdGroup) isFeedItemTarget_Target() {}

func (*FeedItemTarget_Keyword) isFeedItemTarget_Target() {}

func (*FeedItemTarget_GeoTargetConstant) isFeedItemTarget_Target() {}

func (*FeedItemTarget_Device) isFeedItemTarget_Target() {}

func (*FeedItemTarget_AdSchedule) isFeedItemTarget_Target() {}

func (m *FeedItemTarget) GetTarget() isFeedItemTarget_Target {
	if m != nil {
		return m.Target
	}
	return nil
}

func (m *FeedItemTarget) GetCampaign() *wrappers.StringValue {
	if x, ok := m.GetTarget().(*FeedItemTarget_Campaign); ok {
		return x.Campaign
	}
	return nil
}

func (m *FeedItemTarget) GetAdGroup() *wrappers.StringValue {
	if x, ok := m.GetTarget().(*FeedItemTarget_AdGroup); ok {
		return x.AdGroup
	}
	return nil
}

func (m *FeedItemTarget) GetKeyword() *common.KeywordInfo {
	if x, ok := m.GetTarget().(*FeedItemTarget_Keyword); ok {
		return x.Keyword
	}
	return nil
}

func (m *FeedItemTarget) GetGeoTargetConstant() *wrappers.StringValue {
	if x, ok := m.GetTarget().(*FeedItemTarget_GeoTargetConstant); ok {
		return x.GeoTargetConstant
	}
	return nil
}

func (m *FeedItemTarget) GetDevice() enums.FeedItemTargetDeviceEnum_FeedItemTargetDevice {
	if x, ok := m.GetTarget().(*FeedItemTarget_Device); ok {
		return x.Device
	}
	return enums.FeedItemTargetDeviceEnum_UNSPECIFIED
}

func (m *FeedItemTarget) GetAdSchedule() *common.AdScheduleInfo {
	if x, ok := m.GetTarget().(*FeedItemTarget_AdSchedule); ok {
		return x.AdSchedule
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*FeedItemTarget) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*FeedItemTarget_Campaign)(nil),
		(*FeedItemTarget_AdGroup)(nil),
		(*FeedItemTarget_Keyword)(nil),
		(*FeedItemTarget_GeoTargetConstant)(nil),
		(*FeedItemTarget_Device)(nil),
		(*FeedItemTarget_AdSchedule)(nil),
	}
}

func init() {
	proto.RegisterType((*FeedItemTarget)(nil), "google.ads.googleads.v3.resources.FeedItemTarget")
}

func init() {
	proto.RegisterFile("google/ads/googleads/v3/resources/feed_item_target.proto", fileDescriptor_91101725362cc715)
}

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