// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/ads/googleads/v1/common/targeting_setting.proto

package common

import (
	fmt "fmt"
	math "math"

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

// Settings for the
// <a href="https://support.google.com/google-ads/answer/7365594">
// targeting related features</a>, at Campaign and AdGroup level.
type TargetingSetting struct {
	// The per-targeting-dimension setting to restrict the reach of your campaign
	// or ad group.
	TargetRestrictions   []*TargetRestriction `protobuf:"bytes,1,rep,name=target_restrictions,json=targetRestrictions,proto3" json:"target_restrictions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_TargetingSetting proto.InternalMessageInfo

func (m *TargetingSetting) GetTargetRestrictions() []*TargetRestriction {
	if m != nil {
		return m.TargetRestrictions
	}
	return nil
}

// The list of per-targeting-dimension targeting settings.
type TargetRestriction struct {
	// The targeting dimension that these settings apply to.
	TargetingDimension enums.TargetingDimensionEnum_TargetingDimension `protobuf:"varint,1,opt,name=targeting_dimension,json=targetingDimension,proto3,enum=google.ads.googleads.v1.enums.TargetingDimensionEnum_TargetingDimension" json:"targeting_dimension,omitempty"`
	// Indicates whether to restrict your ads to show only for the criteria you
	// have selected for this targeting_dimension, or to target all values for
	// this targeting_dimension and show ads based on your targeting in other
	// TargetingDimensions. A value of 'true' means that these criteria will only
	// apply bid modifiers, and not affect targeting. A value of 'false' means
	// that these criteria will restrict targeting as well as applying bid
	// modifiers.
	BidOnly              *wrappers.BoolValue `protobuf:"bytes,2,opt,name=bid_only,json=bidOnly,proto3" json:"bid_only,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *TargetRestriction) Reset()         { *m = TargetRestriction{} }
func (m *TargetRestriction) String() string { return proto.CompactTextString(m) }
func (*TargetRestriction) ProtoMessage()    {}
func (*TargetRestriction) Descriptor() ([]byte, []int) {
	return fileDescriptor_fd746ab34204e313, []int{1}
}

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

var xxx_messageInfo_TargetRestriction proto.InternalMessageInfo

func (m *TargetRestriction) GetTargetingDimension() enums.TargetingDimensionEnum_TargetingDimension {
	if m != nil {
		return m.TargetingDimension
	}
	return enums.TargetingDimensionEnum_UNSPECIFIED
}

func (m *TargetRestriction) GetBidOnly() *wrappers.BoolValue {
	if m != nil {
		return m.BidOnly
	}
	return nil
}

func init() {
	proto.RegisterType((*TargetingSetting)(nil), "google.ads.googleads.v1.common.TargetingSetting")
	proto.RegisterType((*TargetRestriction)(nil), "google.ads.googleads.v1.common.TargetRestriction")
}

func init() {
	proto.RegisterFile("google/ads/googleads/v1/common/targeting_setting.proto", fileDescriptor_fd746ab34204e313)
}

var fileDescriptor_fd746ab34204e313 = []byte{
	// 391 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xcf, 0x6a, 0xdb, 0x30,
	0x18, 0xc7, 0x0e, 0x6c, 0xc3, 0x81, 0xb1, 0x79, 0x0c, 0x42, 0x18, 0x21, 0xf8, 0x94, 0x93, 0x84,
	0x33, 0xb6, 0x81, 0x76, 0x72, 0x96, 0x91, 0xde, 0x1a, 0xd2, 0xe2, 0x43, 0x31, 0x04, 0x39, 0x52,
	0x85, 0xc0, 0x96, 0x8c, 0x25, 0xa7, 0xe4, 0x75, 0x7a, 0xec, 0x7b, 0xf4, 0xd2, 0x47, 0xe9, 0xa9,
	0x8f, 0x50, 0x6c, 0x59, 0x6e, 0x9a, 0x36, 0xed, 0x49, 0x9f, 0x3e, 0xfd, 0xfe, 0x7c, 0xdf, 0x0f,
	0x79, 0xbf, 0x99, 0x94, 0x2c, 0xa3, 0x10, 0x13, 0x05, 0x4d, 0x59, 0x57, 0xdb, 0x10, 0x6e, 0x64,
	0x9e, 0x4b, 0x01, 0x35, 0x2e, 0x19, 0xd5, 0x5c, 0xb0, 0xb5, 0xa2, 0xba, 0x3e, 0x41, 0x51, 0x4a,
	0x2d, 0xfd, 0x91, 0x01, 0x03, 0x4c, 0x14, 0xe8, 0x78, 0x60, 0x1b, 0x02, 0xc3, 0x1b, 0xfe, 0x39,
	0xa6, 0x4b, 0x45, 0x95, 0xab, 0x3d, 0x59, 0xc2, 0x73, 0x2a, 0x14, 0x97, 0xc2, 0x08, 0x0f, 0x7f,
	0x58, 0x62, 0xc1, 0x21, 0x16, 0x42, 0x6a, 0xac, 0xb9, 0x14, 0xaa, 0x7d, 0x6d, 0x6d, 0x61, 0x73,
	0x4b, 0xab, 0x4b, 0x78, 0x55, 0xe2, 0xa2, 0xa0, 0x65, 0xfb, 0x1e, 0x6c, 0xbd, 0x2f, 0xe7, 0x56,
	0xfa, 0xcc, 0x0c, 0xec, 0xa7, 0xde, 0x37, 0x63, 0xb7, 0x2e, 0xa9, 0xd2, 0x25, 0xdf, 0x34, 0x82,
	0x03, 0x67, 0xdc, 0x9b, 0xf4, 0xa7, 0x21, 0x78, 0x7b, 0x11, 0x60, 0xe4, 0x56, 0x4f, 0xcc, 0x95,
	0xaf, 0x0f, 0x5b, 0x2a, 0xb8, 0x75, 0xbc, 0xaf, 0x2f, 0x90, 0xfe, 0xce, 0x3a, 0x3f, 0x5b, 0x74,
	0xe0, 0x8c, 0x9d, 0xc9, 0xe7, 0xe9, 0xc9, 0x51, 0xe7, 0x26, 0x22, 0xd0, 0xed, 0x31, 0xb7, 0xc4,
	0xff, 0xa2, 0xca, 0x5f, 0x69, 0xdb, 0x81, 0xf6, 0x7b, 0xfe, 0x2f, 0xef, 0x53, 0xca, 0xc9, 0x5a,
	0x8a, 0x6c, 0x37, 0x70, 0xc7, 0xce, 0xa4, 0x3f, 0x1d, 0x5a, 0x3f, 0x9b, 0x1d, 0x98, 0x49, 0x99,
	0xc5, 0x38, 0xab, 0xe8, 0xea, 0x63, 0xca, 0xc9, 0xa9, 0xc8, 0x76, 0xb3, 0x07, 0xc7, 0x0b, 0x36,
	0x32, 0x7f, 0x27, 0x94, 0xd9, 0xf7, 0xc3, 0x90, 0x97, 0xb5, 0xe6, 0xd2, 0xb9, 0x98, 0xb7, 0x44,
	0x26, 0x33, 0x2c, 0x18, 0x90, 0x25, 0x83, 0x8c, 0x8a, 0xc6, 0xd1, 0x7e, 0x83, 0x82, 0xab, 0x63,
	0xbf, 0xed, 0xaf, 0x39, 0xae, 0xdd, 0xde, 0x22, 0x8a, 0x6e, 0xdc, 0xd1, 0xc2, 0x88, 0x45, 0x44,
	0x01, 0x53, 0xd6, 0x55, 0x1c, 0x82, 0x7f, 0x0d, 0xec, 0xce, 0x02, 0x92, 0x88, 0xa8, 0xa4, 0x03,
	0x24, 0x71, 0x98, 0x18, 0xc0, 0xbd, 0x1b, 0x98, 0x2e, 0x42, 0x11, 0x51, 0x08, 0x75, 0x10, 0x84,
	0xe2, 0x10, 0x21, 0x03, 0x4a, 0x3f, 0x34, 0xd3, 0xfd, 0x7c, 0x0c, 0x00, 0x00, 0xff, 0xff, 0xef,
	0x06, 0xbc, 0xb2, 0x0a, 0x03, 0x00, 0x00,
}
