// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/ads/googleads/v2/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/v2/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.v2.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.v2.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_66c159186d7fb4e4, []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.v2.resources.CampaignExperiment")
}

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

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