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