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

package resources

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/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 Keyword Plan campaign.
// Max number of keyword plan campaigns per plan allowed: 1.
type KeywordPlanCampaign struct {
	// Immutable. The resource name of the Keyword Plan campaign.
	// KeywordPlanCampaign resource names have the form:
	//
	// `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}`
	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	// The keyword plan this campaign belongs to.
	KeywordPlan *wrappers.StringValue `protobuf:"bytes,2,opt,name=keyword_plan,json=keywordPlan,proto3" json:"keyword_plan,omitempty"`
	// Output only. The ID of the Keyword Plan campaign.
	Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"`
	// The name of the Keyword Plan campaign.
	//
	// This field is required and should not be empty when creating Keyword Plan
	// campaigns.
	Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
	// The languages targeted for the Keyword Plan campaign.
	// Max allowed: 1.
	LanguageConstants []*wrappers.StringValue `protobuf:"bytes,5,rep,name=language_constants,json=languageConstants,proto3" json:"language_constants,omitempty"`
	// Targeting network.
	//
	// This field is required and should not be empty when creating Keyword Plan
	// campaigns.
	KeywordPlanNetwork enums.KeywordPlanNetworkEnum_KeywordPlanNetwork `protobuf:"varint,6,opt,name=keyword_plan_network,json=keywordPlanNetwork,proto3,enum=google.ads.googleads.v3.enums.KeywordPlanNetworkEnum_KeywordPlanNetwork" json:"keyword_plan_network,omitempty"`
	// A default max cpc bid in micros, and in the account currency, for all ad
	// groups under the campaign.
	//
	// This field is required and should not be empty when creating Keyword Plan
	// campaigns.
	CpcBidMicros *wrappers.Int64Value `protobuf:"bytes,7,opt,name=cpc_bid_micros,json=cpcBidMicros,proto3" json:"cpc_bid_micros,omitempty"`
	// The geo targets.
	// Max number allowed: 20.
	GeoTargets           []*KeywordPlanGeoTarget `protobuf:"bytes,8,rep,name=geo_targets,json=geoTargets,proto3" json:"geo_targets,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

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

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

var xxx_messageInfo_KeywordPlanCampaign proto.InternalMessageInfo

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

func (m *KeywordPlanCampaign) GetKeywordPlan() *wrappers.StringValue {
	if m != nil {
		return m.KeywordPlan
	}
	return nil
}

func (m *KeywordPlanCampaign) GetId() *wrappers.Int64Value {
	if m != nil {
		return m.Id
	}
	return nil
}

func (m *KeywordPlanCampaign) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *KeywordPlanCampaign) GetLanguageConstants() []*wrappers.StringValue {
	if m != nil {
		return m.LanguageConstants
	}
	return nil
}

func (m *KeywordPlanCampaign) GetKeywordPlanNetwork() enums.KeywordPlanNetworkEnum_KeywordPlanNetwork {
	if m != nil {
		return m.KeywordPlanNetwork
	}
	return enums.KeywordPlanNetworkEnum_UNSPECIFIED
}

func (m *KeywordPlanCampaign) GetCpcBidMicros() *wrappers.Int64Value {
	if m != nil {
		return m.CpcBidMicros
	}
	return nil
}

func (m *KeywordPlanCampaign) GetGeoTargets() []*KeywordPlanGeoTarget {
	if m != nil {
		return m.GeoTargets
	}
	return nil
}

// A geo target.
// Next ID: 3
type KeywordPlanGeoTarget struct {
	// Required. The resource name of the geo target.
	GeoTargetConstant    *wrappers.StringValue `protobuf:"bytes,1,opt,name=geo_target_constant,json=geoTargetConstant,proto3" json:"geo_target_constant,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_KeywordPlanGeoTarget proto.InternalMessageInfo

func (m *KeywordPlanGeoTarget) GetGeoTargetConstant() *wrappers.StringValue {
	if m != nil {
		return m.GeoTargetConstant
	}
	return nil
}

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

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

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