// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/ads/googleads/v3/resources/campaign_experiment.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

// An A/B experiment that compares the performance of the base campaign
// (the control) and a variation of that campaign (the experiment).
type CampaignExperiment struct {
	// The resource name of the campaign experiment.
	// Campaign experiment resource names have the form:
	//
	// `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}`
	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	// The ID of the campaign experiment.
	//
	// This field is read-only.
	Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	// The campaign draft with staged changes to the base campaign.
	CampaignDraft *wrappers.StringValue `protobuf:"bytes,3,opt,name=campaign_draft,json=campaignDraft,proto3" json:"campaign_draft,omitempty"`
	// The name of the campaign experiment.
	//
	// This field is required when creating new campaign experiments
	// and must not conflict with the name of another non-removed
	// campaign experiment or campaign.
	//
	// It must not contain any null (code point 0x0), NL line feed
	// (code point 0xA) or carriage return (code point 0xD) characters.
	Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
	// The description of the experiment.
	Description *wrappers.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
	// Share of traffic directed to experiment as a percent (must be between 1 and
	// 99 inclusive. Base campaign receives the remainder of the traffic
	// (100 - traffic_split_percent). Required for create.
	TrafficSplitPercent *wrappers.Int64Value `protobuf:"bytes,6,opt,name=traffic_split_percent,json=trafficSplitPercent,proto3" json:"traffic_split_percent,omitempty"`
	// Determines the behavior of the traffic split.
	TrafficSplitType enums.CampaignExperimentTrafficSplitTypeEnum_CampaignExperimentTrafficSplitType `protobuf:"varint,7,opt,name=traffic_split_type,json=trafficSplitType,proto3,enum=google.ads.googleads.v3.enums.CampaignExperimentTrafficSplitTypeEnum_CampaignExperimentTrafficSplitType" json:"traffic_split_type,omitempty"`
	// The experiment campaign, as opposed to the base campaign.
	ExperimentCampaign *wrappers.StringValue `protobuf:"bytes,8,opt,name=experiment_campaign,json=experimentCampaign,proto3" json:"experiment_campaign,omitempty"`
	// The status of the campaign experiment. This field is read-only.
	Status enums.CampaignExperimentStatusEnum_CampaignExperimentStatus `protobuf:"varint,9,opt,name=status,proto3,enum=google.ads.googleads.v3.enums.CampaignExperimentStatusEnum_CampaignExperimentStatus" json:"status,omitempty"`
	// The resource name of the long-running operation that can be used to poll
	// for completion of experiment create or promote. The most recent long
	// running operation is returned.
	LongRunningOperation *wrappers.StringValue `protobuf:"bytes,10,opt,name=long_running_operation,json=longRunningOperation,proto3" json:"long_running_operation,omitempty"`
	// Date when the campaign experiment starts. By default, the experiment starts
	// now or on the campaign's start date, whichever is later. If this field is
	// set, then the experiment starts at the beginning of the specified date in
	// the customer's time zone. Cannot be changed once the experiment starts.
	//
	// Format: YYYY-MM-DD
	// Example: 2019-03-14
	StartDate *wrappers.StringValue `protobuf:"bytes,11,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
	// Date when the campaign experiment ends. By default, the experiment ends on
	// the campaign's end date. If this field is set, then the experiment ends at
	// the end of the specified date in the customer's time zone.
	//
	// Format: YYYY-MM-DD
	// Example: 2019-04-18
	EndDate              *wrappers.StringValue `protobuf:"bytes,12,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_CampaignExperiment proto.InternalMessageInfo

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

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

func (m *CampaignExperiment) GetCampaignDraft() *wrappers.StringValue {
	if m != nil {
		return m.CampaignDraft
	}
	return nil
}

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

func (m *CampaignExperiment) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *CampaignExperiment) GetTrafficSplitPercent() *wrappers.Int64Value {
	if m != nil {
		return m.TrafficSplitPercent
	}
	return nil
}

func (m *CampaignExperiment) GetTrafficSplitType() enums.CampaignExperimentTrafficSplitTypeEnum_CampaignExperimentTrafficSplitType {
	if m != nil {
		return m.TrafficSplitType
	}
	return enums.CampaignExperimentTrafficSplitTypeEnum_UNSPECIFIED
}

func (m *CampaignExperiment) GetExperimentCampaign() *wrappers.StringValue {
	if m != nil {
		return m.ExperimentCampaign
	}
	return nil
}

func (m *CampaignExperiment) GetStatus() enums.CampaignExperimentStatusEnum_CampaignExperimentStatus {
	if m != nil {
		return m.Status
	}
	return enums.CampaignExperimentStatusEnum_UNSPECIFIED
}

func (m *CampaignExperiment) GetLongRunningOperation() *wrappers.StringValue {
	if m != nil {
		return m.LongRunningOperation
	}
	return nil
}

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

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

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

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

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