// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/ads/googleads/v3/resources/campaign_criterion_simulation.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 campaign criterion simulation. Supported combinations of advertising
// channel type, criterion ids, simulation type and simulation modification
// method is detailed below respectively.
//
// 1. SEARCH - 30000,30001,30002 - BID_MODIFIER - UNIFORM
// 2. SHOPPING - 30000,30001,30002 - BID_MODIFIER - UNIFORM
// 3. DISPLAY - 30001 - BID_MODIFIER - UNIFORM
type CampaignCriterionSimulation struct {
	// Output only. The resource name of the campaign criterion simulation.
	// Campaign criterion simulation resource names have the form:
	//
	// `customers/{customer_id}/campaignCriterionSimulations/{campaign_id}~{criterion_id}~{type}~{modification_method}~{start_date}~{end_date}`
	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	// Output only. Campaign ID of the simulation.
	CampaignId *wrappers.Int64Value `protobuf:"bytes,2,opt,name=campaign_id,json=campaignId,proto3" json:"campaign_id,omitempty"`
	// Output only. Criterion ID of the simulation.
	CriterionId *wrappers.Int64Value `protobuf:"bytes,3,opt,name=criterion_id,json=criterionId,proto3" json:"criterion_id,omitempty"`
	// Output only. The field that the simulation modifies.
	Type enums.SimulationTypeEnum_SimulationType `protobuf:"varint,4,opt,name=type,proto3,enum=google.ads.googleads.v3.enums.SimulationTypeEnum_SimulationType" json:"type,omitempty"`
	// Output only. How the simulation modifies the field.
	ModificationMethod enums.SimulationModificationMethodEnum_SimulationModificationMethod `protobuf:"varint,5,opt,name=modification_method,json=modificationMethod,proto3,enum=google.ads.googleads.v3.enums.SimulationModificationMethodEnum_SimulationModificationMethod" json:"modification_method,omitempty"`
	// Output only. First day on which the simulation is based, in YYYY-MM-DD format.
	StartDate *wrappers.StringValue `protobuf:"bytes,6,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	// Output only. Last day on which the simulation is based, in YYYY-MM-DD format.
	EndDate *wrappers.StringValue `protobuf:"bytes,7,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
	// List of simulation points.
	//
	// Types that are valid to be assigned to PointList:
	//	*CampaignCriterionSimulation_BidModifierPointList
	PointList            isCampaignCriterionSimulation_PointList `protobuf_oneof:"point_list"`
	XXX_NoUnkeyedLiteral struct{}                                `json:"-"`
	XXX_unrecognized     []byte                                  `json:"-"`
	XXX_sizecache        int32                                   `json:"-"`
}

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

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

var xxx_messageInfo_CampaignCriterionSimulation proto.InternalMessageInfo

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

func (m *CampaignCriterionSimulation) GetCampaignId() *wrappers.Int64Value {
	if m != nil {
		return m.CampaignId
	}
	return nil
}

func (m *CampaignCriterionSimulation) GetCriterionId() *wrappers.Int64Value {
	if m != nil {
		return m.CriterionId
	}
	return nil
}

func (m *CampaignCriterionSimulation) GetType() enums.SimulationTypeEnum_SimulationType {
	if m != nil {
		return m.Type
	}
	return enums.SimulationTypeEnum_UNSPECIFIED
}

func (m *CampaignCriterionSimulation) GetModificationMethod() enums.SimulationModificationMethodEnum_SimulationModificationMethod {
	if m != nil {
		return m.ModificationMethod
	}
	return enums.SimulationModificationMethodEnum_UNSPECIFIED
}

func (m *CampaignCriterionSimulation) GetStartDate() *wrappers.StringValue {
	if m != nil {
		return m.StartDate
	}
	return nil
}

func (m *CampaignCriterionSimulation) GetEndDate() *wrappers.StringValue {
	if m != nil {
		return m.EndDate
	}
	return nil
}

type isCampaignCriterionSimulation_PointList interface {
	isCampaignCriterionSimulation_PointList()
}

type CampaignCriterionSimulation_BidModifierPointList struct {
	BidModifierPointList *common.BidModifierSimulationPointList `protobuf:"bytes,8,opt,name=bid_modifier_point_list,json=bidModifierPointList,proto3,oneof"`
}

func (*CampaignCriterionSimulation_BidModifierPointList) isCampaignCriterionSimulation_PointList() {}

func (m *CampaignCriterionSimulation) GetPointList() isCampaignCriterionSimulation_PointList {
	if m != nil {
		return m.PointList
	}
	return nil
}

func (m *CampaignCriterionSimulation) GetBidModifierPointList() *common.BidModifierSimulationPointList {
	if x, ok := m.GetPointList().(*CampaignCriterionSimulation_BidModifierPointList); ok {
		return x.BidModifierPointList
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*CampaignCriterionSimulation) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*CampaignCriterionSimulation_BidModifierPointList)(nil),
	}
}

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

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

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