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

package services

import (
	context "context"
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	empty "github.com/golang/protobuf/ptypes/empty"
	resources "google.golang.org/genproto/googleapis/ads/googleads/v3/resources"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	longrunning "google.golang.org/genproto/googleapis/longrunning"
	status "google.golang.org/genproto/googleapis/rpc/status"
	field_mask "google.golang.org/genproto/protobuf/field_mask"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status1 "google.golang.org/grpc/status"
)

// 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

// Request message for [CampaignExperimentService.GetCampaignExperiment][google.ads.googleads.v3.services.CampaignExperimentService.GetCampaignExperiment].
type GetCampaignExperimentRequest struct {
	// Required. The resource name of the campaign experiment to fetch.
	ResourceName         string   `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_GetCampaignExperimentRequest proto.InternalMessageInfo

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

// Request message for [CampaignExperimentService.MutateCampaignExperiments][google.ads.googleads.v3.services.CampaignExperimentService.MutateCampaignExperiments].
type MutateCampaignExperimentsRequest struct {
	// Required. The ID of the customer whose campaign experiments are being modified.
	CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"`
	// Required. The list of operations to perform on individual campaign experiments.
	Operations []*CampaignExperimentOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"`
	// If true, successful operations will be carried out and invalid
	// operations will return errors. If false, all operations will be carried
	// out in one transaction if and only if they are all valid.
	// Default is false.
	PartialFailure bool `protobuf:"varint,3,opt,name=partial_failure,json=partialFailure,proto3" json:"partial_failure,omitempty"`
	// If true, the request is validated but not executed. Only errors are
	// returned, not results.
	ValidateOnly         bool     `protobuf:"varint,4,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_MutateCampaignExperimentsRequest proto.InternalMessageInfo

func (m *MutateCampaignExperimentsRequest) GetCustomerId() string {
	if m != nil {
		return m.CustomerId
	}
	return ""
}

func (m *MutateCampaignExperimentsRequest) GetOperations() []*CampaignExperimentOperation {
	if m != nil {
		return m.Operations
	}
	return nil
}

func (m *MutateCampaignExperimentsRequest) GetPartialFailure() bool {
	if m != nil {
		return m.PartialFailure
	}
	return false
}

func (m *MutateCampaignExperimentsRequest) GetValidateOnly() bool {
	if m != nil {
		return m.ValidateOnly
	}
	return false
}

// A single update operation on a campaign experiment.
type CampaignExperimentOperation struct {
	// FieldMask that determines which resource fields are modified in an update.
	UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// The mutate operation.
	//
	// Types that are valid to be assigned to Operation:
	//	*CampaignExperimentOperation_Update
	//	*CampaignExperimentOperation_Remove
	Operation            isCampaignExperimentOperation_Operation `protobuf_oneof:"operation"`
	XXX_NoUnkeyedLiteral struct{}                                `json:"-"`
	XXX_unrecognized     []byte                                  `json:"-"`
	XXX_sizecache        int32                                   `json:"-"`
}

func (m *CampaignExperimentOperation) Reset()         { *m = CampaignExperimentOperation{} }
func (m *CampaignExperimentOperation) String() string { return proto.CompactTextString(m) }
func (*CampaignExperimentOperation) ProtoMessage()    {}
func (*CampaignExperimentOperation) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{2}
}

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

var xxx_messageInfo_CampaignExperimentOperation proto.InternalMessageInfo

func (m *CampaignExperimentOperation) GetUpdateMask() *field_mask.FieldMask {
	if m != nil {
		return m.UpdateMask
	}
	return nil
}

type isCampaignExperimentOperation_Operation interface {
	isCampaignExperimentOperation_Operation()
}

type CampaignExperimentOperation_Update struct {
	Update *resources.CampaignExperiment `protobuf:"bytes,1,opt,name=update,proto3,oneof"`
}

type CampaignExperimentOperation_Remove struct {
	Remove string `protobuf:"bytes,2,opt,name=remove,proto3,oneof"`
}

func (*CampaignExperimentOperation_Update) isCampaignExperimentOperation_Operation() {}

func (*CampaignExperimentOperation_Remove) isCampaignExperimentOperation_Operation() {}

func (m *CampaignExperimentOperation) GetOperation() isCampaignExperimentOperation_Operation {
	if m != nil {
		return m.Operation
	}
	return nil
}

func (m *CampaignExperimentOperation) GetUpdate() *resources.CampaignExperiment {
	if x, ok := m.GetOperation().(*CampaignExperimentOperation_Update); ok {
		return x.Update
	}
	return nil
}

func (m *CampaignExperimentOperation) GetRemove() string {
	if x, ok := m.GetOperation().(*CampaignExperimentOperation_Remove); ok {
		return x.Remove
	}
	return ""
}

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

// Response message for campaign experiment mutate.
type MutateCampaignExperimentsResponse struct {
	// Errors that pertain to operation failures in the partial failure mode.
	// Returned only when partial_failure = true and all errors occur inside the
	// operations. If any errors occur outside the operations (e.g. auth errors),
	// we return an RPC level error.
	PartialFailureError *status.Status `protobuf:"bytes,3,opt,name=partial_failure_error,json=partialFailureError,proto3" json:"partial_failure_error,omitempty"`
	// All results for the mutate.
	Results              []*MutateCampaignExperimentResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
	XXX_unrecognized     []byte                            `json:"-"`
	XXX_sizecache        int32                             `json:"-"`
}

func (m *MutateCampaignExperimentsResponse) Reset()         { *m = MutateCampaignExperimentsResponse{} }
func (m *MutateCampaignExperimentsResponse) String() string { return proto.CompactTextString(m) }
func (*MutateCampaignExperimentsResponse) ProtoMessage()    {}
func (*MutateCampaignExperimentsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{3}
}

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

var xxx_messageInfo_MutateCampaignExperimentsResponse proto.InternalMessageInfo

func (m *MutateCampaignExperimentsResponse) GetPartialFailureError() *status.Status {
	if m != nil {
		return m.PartialFailureError
	}
	return nil
}

func (m *MutateCampaignExperimentsResponse) GetResults() []*MutateCampaignExperimentResult {
	if m != nil {
		return m.Results
	}
	return nil
}

// The result for the campaign experiment mutate.
type MutateCampaignExperimentResult struct {
	// Returned for successful operations.
	ResourceName         string   `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MutateCampaignExperimentResult) Reset()         { *m = MutateCampaignExperimentResult{} }
func (m *MutateCampaignExperimentResult) String() string { return proto.CompactTextString(m) }
func (*MutateCampaignExperimentResult) ProtoMessage()    {}
func (*MutateCampaignExperimentResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{4}
}

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

var xxx_messageInfo_MutateCampaignExperimentResult proto.InternalMessageInfo

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

// Request message for [CampaignExperimentService.CreateCampaignExperiment][google.ads.googleads.v3.services.CampaignExperimentService.CreateCampaignExperiment].
type CreateCampaignExperimentRequest struct {
	// Required. The ID of the customer whose campaign experiment is being created.
	CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"`
	// Required. The campaign experiment to be created.
	CampaignExperiment *resources.CampaignExperiment `protobuf:"bytes,2,opt,name=campaign_experiment,json=campaignExperiment,proto3" json:"campaign_experiment,omitempty"`
	// If true, the request is validated but not executed. Only errors are
	// returned, not results.
	ValidateOnly         bool     `protobuf:"varint,3,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateCampaignExperimentRequest) Reset()         { *m = CreateCampaignExperimentRequest{} }
func (m *CreateCampaignExperimentRequest) String() string { return proto.CompactTextString(m) }
func (*CreateCampaignExperimentRequest) ProtoMessage()    {}
func (*CreateCampaignExperimentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{5}
}

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

var xxx_messageInfo_CreateCampaignExperimentRequest proto.InternalMessageInfo

func (m *CreateCampaignExperimentRequest) GetCustomerId() string {
	if m != nil {
		return m.CustomerId
	}
	return ""
}

func (m *CreateCampaignExperimentRequest) GetCampaignExperiment() *resources.CampaignExperiment {
	if m != nil {
		return m.CampaignExperiment
	}
	return nil
}

func (m *CreateCampaignExperimentRequest) GetValidateOnly() bool {
	if m != nil {
		return m.ValidateOnly
	}
	return false
}

// Message used as metadata returned in Long Running Operations for
// CreateCampaignExperimentRequest
type CreateCampaignExperimentMetadata struct {
	// Resource name of campaign experiment created.
	CampaignExperiment   string   `protobuf:"bytes,1,opt,name=campaign_experiment,json=campaignExperiment,proto3" json:"campaign_experiment,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateCampaignExperimentMetadata) Reset()         { *m = CreateCampaignExperimentMetadata{} }
func (m *CreateCampaignExperimentMetadata) String() string { return proto.CompactTextString(m) }
func (*CreateCampaignExperimentMetadata) ProtoMessage()    {}
func (*CreateCampaignExperimentMetadata) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{6}
}

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

var xxx_messageInfo_CreateCampaignExperimentMetadata proto.InternalMessageInfo

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

// Request message for [CampaignExperimentService.GraduateCampaignExperiment][google.ads.googleads.v3.services.CampaignExperimentService.GraduateCampaignExperiment].
type GraduateCampaignExperimentRequest struct {
	// Required. The resource name of the campaign experiment to graduate.
	CampaignExperiment string `protobuf:"bytes,1,opt,name=campaign_experiment,json=campaignExperiment,proto3" json:"campaign_experiment,omitempty"`
	// Required. Resource name of the budget to attach to the campaign graduated from the
	// experiment.
	CampaignBudget       string   `protobuf:"bytes,2,opt,name=campaign_budget,json=campaignBudget,proto3" json:"campaign_budget,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GraduateCampaignExperimentRequest) Reset()         { *m = GraduateCampaignExperimentRequest{} }
func (m *GraduateCampaignExperimentRequest) String() string { return proto.CompactTextString(m) }
func (*GraduateCampaignExperimentRequest) ProtoMessage()    {}
func (*GraduateCampaignExperimentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{7}
}

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

var xxx_messageInfo_GraduateCampaignExperimentRequest proto.InternalMessageInfo

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

func (m *GraduateCampaignExperimentRequest) GetCampaignBudget() string {
	if m != nil {
		return m.CampaignBudget
	}
	return ""
}

// Response message for campaign experiment graduate.
type GraduateCampaignExperimentResponse struct {
	// The resource name of the campaign from the graduated experiment.
	// This campaign is the same one as CampaignExperiment.experiment_campaign.
	GraduatedCampaign    string   `protobuf:"bytes,1,opt,name=graduated_campaign,json=graduatedCampaign,proto3" json:"graduated_campaign,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GraduateCampaignExperimentResponse) Reset()         { *m = GraduateCampaignExperimentResponse{} }
func (m *GraduateCampaignExperimentResponse) String() string { return proto.CompactTextString(m) }
func (*GraduateCampaignExperimentResponse) ProtoMessage()    {}
func (*GraduateCampaignExperimentResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{8}
}

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

var xxx_messageInfo_GraduateCampaignExperimentResponse proto.InternalMessageInfo

func (m *GraduateCampaignExperimentResponse) GetGraduatedCampaign() string {
	if m != nil {
		return m.GraduatedCampaign
	}
	return ""
}

// Request message for [CampaignExperimentService.PromoteCampaignExperiment][google.ads.googleads.v3.services.CampaignExperimentService.PromoteCampaignExperiment].
type PromoteCampaignExperimentRequest struct {
	// Required. The resource name of the campaign experiment to promote.
	CampaignExperiment   string   `protobuf:"bytes,1,opt,name=campaign_experiment,json=campaignExperiment,proto3" json:"campaign_experiment,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PromoteCampaignExperimentRequest) Reset()         { *m = PromoteCampaignExperimentRequest{} }
func (m *PromoteCampaignExperimentRequest) String() string { return proto.CompactTextString(m) }
func (*PromoteCampaignExperimentRequest) ProtoMessage()    {}
func (*PromoteCampaignExperimentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{9}
}

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

var xxx_messageInfo_PromoteCampaignExperimentRequest proto.InternalMessageInfo

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

// Request message for [CampaignExperimentService.EndCampaignExperiment][google.ads.googleads.v3.services.CampaignExperimentService.EndCampaignExperiment].
type EndCampaignExperimentRequest struct {
	// Required. The resource name of the campaign experiment to end.
	CampaignExperiment   string   `protobuf:"bytes,1,opt,name=campaign_experiment,json=campaignExperiment,proto3" json:"campaign_experiment,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *EndCampaignExperimentRequest) Reset()         { *m = EndCampaignExperimentRequest{} }
func (m *EndCampaignExperimentRequest) String() string { return proto.CompactTextString(m) }
func (*EndCampaignExperimentRequest) ProtoMessage()    {}
func (*EndCampaignExperimentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{10}
}

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

var xxx_messageInfo_EndCampaignExperimentRequest proto.InternalMessageInfo

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

// Request message for
// [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v3.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors].
type ListCampaignExperimentAsyncErrorsRequest struct {
	// Required. The name of the campaign experiment from which to retrieve the async
	// errors.
	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	// Token of the page to retrieve. If not specified, the first
	// page of results will be returned. Use the value obtained from
	// `next_page_token` in the previous response in order to request
	// the next page of results.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Number of elements to retrieve in a single page.
	// When a page request is too large, the server may decide to
	// further limit the number of returned resources.
	PageSize             int32    `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListCampaignExperimentAsyncErrorsRequest) Reset() {
	*m = ListCampaignExperimentAsyncErrorsRequest{}
}
func (m *ListCampaignExperimentAsyncErrorsRequest) String() string { return proto.CompactTextString(m) }
func (*ListCampaignExperimentAsyncErrorsRequest) ProtoMessage()    {}
func (*ListCampaignExperimentAsyncErrorsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{11}
}

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

var xxx_messageInfo_ListCampaignExperimentAsyncErrorsRequest proto.InternalMessageInfo

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

func (m *ListCampaignExperimentAsyncErrorsRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *ListCampaignExperimentAsyncErrorsRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

// Response message for
// [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v3.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors].
type ListCampaignExperimentAsyncErrorsResponse struct {
	// Details of the errors when performing the asynchronous operation.
	Errors []*status.Status `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"`
	// Pagination token used to retrieve the next page of results.
	// Pass the content of this string as the `page_token` attribute of
	// the next request. `next_page_token` is not returned for the last
	// page.
	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListCampaignExperimentAsyncErrorsResponse) Reset() {
	*m = ListCampaignExperimentAsyncErrorsResponse{}
}
func (m *ListCampaignExperimentAsyncErrorsResponse) String() string { return proto.CompactTextString(m) }
func (*ListCampaignExperimentAsyncErrorsResponse) ProtoMessage()    {}
func (*ListCampaignExperimentAsyncErrorsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_28da8316d8332ea0, []int{12}
}

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

var xxx_messageInfo_ListCampaignExperimentAsyncErrorsResponse proto.InternalMessageInfo

func (m *ListCampaignExperimentAsyncErrorsResponse) GetErrors() []*status.Status {
	if m != nil {
		return m.Errors
	}
	return nil
}

func (m *ListCampaignExperimentAsyncErrorsResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

func init() {
	proto.RegisterType((*GetCampaignExperimentRequest)(nil), "google.ads.googleads.v3.services.GetCampaignExperimentRequest")
	proto.RegisterType((*MutateCampaignExperimentsRequest)(nil), "google.ads.googleads.v3.services.MutateCampaignExperimentsRequest")
	proto.RegisterType((*CampaignExperimentOperation)(nil), "google.ads.googleads.v3.services.CampaignExperimentOperation")
	proto.RegisterType((*MutateCampaignExperimentsResponse)(nil), "google.ads.googleads.v3.services.MutateCampaignExperimentsResponse")
	proto.RegisterType((*MutateCampaignExperimentResult)(nil), "google.ads.googleads.v3.services.MutateCampaignExperimentResult")
	proto.RegisterType((*CreateCampaignExperimentRequest)(nil), "google.ads.googleads.v3.services.CreateCampaignExperimentRequest")
	proto.RegisterType((*CreateCampaignExperimentMetadata)(nil), "google.ads.googleads.v3.services.CreateCampaignExperimentMetadata")
	proto.RegisterType((*GraduateCampaignExperimentRequest)(nil), "google.ads.googleads.v3.services.GraduateCampaignExperimentRequest")
	proto.RegisterType((*GraduateCampaignExperimentResponse)(nil), "google.ads.googleads.v3.services.GraduateCampaignExperimentResponse")
	proto.RegisterType((*PromoteCampaignExperimentRequest)(nil), "google.ads.googleads.v3.services.PromoteCampaignExperimentRequest")
	proto.RegisterType((*EndCampaignExperimentRequest)(nil), "google.ads.googleads.v3.services.EndCampaignExperimentRequest")
	proto.RegisterType((*ListCampaignExperimentAsyncErrorsRequest)(nil), "google.ads.googleads.v3.services.ListCampaignExperimentAsyncErrorsRequest")
	proto.RegisterType((*ListCampaignExperimentAsyncErrorsResponse)(nil), "google.ads.googleads.v3.services.ListCampaignExperimentAsyncErrorsResponse")
}

func init() {
	proto.RegisterFile("google/ads/googleads/v3/services/campaign_experiment_service.proto", fileDescriptor_28da8316d8332ea0)
}

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

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// CampaignExperimentServiceClient is the client API for CampaignExperimentService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type CampaignExperimentServiceClient interface {
	// Returns the requested campaign experiment in full detail.
	GetCampaignExperiment(ctx context.Context, in *GetCampaignExperimentRequest, opts ...grpc.CallOption) (*resources.CampaignExperiment, error)
	// Creates a campaign experiment based on a campaign draft. The draft campaign
	// will be forked into a real campaign (called the experiment campaign) that
	// will begin serving ads if successfully created.
	//
	// The campaign experiment is created immediately with status INITIALIZING.
	// This method return a long running operation that tracks the forking of the
	// draft campaign. If the forking fails, a list of errors can be retrieved
	// using the ListCampaignExperimentAsyncErrors method. The operation's
	// metadata will be a StringValue containing the resource name of the created
	// campaign experiment.
	CreateCampaignExperiment(ctx context.Context, in *CreateCampaignExperimentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Updates campaign experiments. Operation statuses are returned.
	MutateCampaignExperiments(ctx context.Context, in *MutateCampaignExperimentsRequest, opts ...grpc.CallOption) (*MutateCampaignExperimentsResponse, error)
	// Graduates a campaign experiment to a full campaign. The base and experiment
	// campaigns will start running independently with their own budgets.
	GraduateCampaignExperiment(ctx context.Context, in *GraduateCampaignExperimentRequest, opts ...grpc.CallOption) (*GraduateCampaignExperimentResponse, error)
	// Promotes the changes in a experiment campaign back to the base campaign.
	//
	// The campaign experiment is updated immediately with status PROMOTING.
	// This method return a long running operation that tracks the promoting of
	// the experiment campaign. If the promoting fails, a list of errors can be
	// retrieved using the ListCampaignExperimentAsyncErrors method.
	PromoteCampaignExperiment(ctx context.Context, in *PromoteCampaignExperimentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Immediately ends a campaign experiment, changing the experiment's scheduled
	// end date and without waiting for end of day. End date is updated to be the
	// time of the request.
	EndCampaignExperiment(ctx context.Context, in *EndCampaignExperimentRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	// Returns all errors that occurred during CampaignExperiment create or
	// promote (whichever occurred last).
	// Supports standard list paging.
	ListCampaignExperimentAsyncErrors(ctx context.Context, in *ListCampaignExperimentAsyncErrorsRequest, opts ...grpc.CallOption) (*ListCampaignExperimentAsyncErrorsResponse, error)
}

type campaignExperimentServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewCampaignExperimentServiceClient(cc grpc.ClientConnInterface) CampaignExperimentServiceClient {
	return &campaignExperimentServiceClient{cc}
}

func (c *campaignExperimentServiceClient) GetCampaignExperiment(ctx context.Context, in *GetCampaignExperimentRequest, opts ...grpc.CallOption) (*resources.CampaignExperiment, error) {
	out := new(resources.CampaignExperiment)
	err := c.cc.Invoke(ctx, "/google.ads.googleads.v3.services.CampaignExperimentService/GetCampaignExperiment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *campaignExperimentServiceClient) CreateCampaignExperiment(ctx context.Context, in *CreateCampaignExperimentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.ads.googleads.v3.services.CampaignExperimentService/CreateCampaignExperiment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *campaignExperimentServiceClient) MutateCampaignExperiments(ctx context.Context, in *MutateCampaignExperimentsRequest, opts ...grpc.CallOption) (*MutateCampaignExperimentsResponse, error) {
	out := new(MutateCampaignExperimentsResponse)
	err := c.cc.Invoke(ctx, "/google.ads.googleads.v3.services.CampaignExperimentService/MutateCampaignExperiments", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *campaignExperimentServiceClient) GraduateCampaignExperiment(ctx context.Context, in *GraduateCampaignExperimentRequest, opts ...grpc.CallOption) (*GraduateCampaignExperimentResponse, error) {
	out := new(GraduateCampaignExperimentResponse)
	err := c.cc.Invoke(ctx, "/google.ads.googleads.v3.services.CampaignExperimentService/GraduateCampaignExperiment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *campaignExperimentServiceClient) PromoteCampaignExperiment(ctx context.Context, in *PromoteCampaignExperimentRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.ads.googleads.v3.services.CampaignExperimentService/PromoteCampaignExperiment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *campaignExperimentServiceClient) EndCampaignExperiment(ctx context.Context, in *EndCampaignExperimentRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/google.ads.googleads.v3.services.CampaignExperimentService/EndCampaignExperiment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *campaignExperimentServiceClient) ListCampaignExperimentAsyncErrors(ctx context.Context, in *ListCampaignExperimentAsyncErrorsRequest, opts ...grpc.CallOption) (*ListCampaignExperimentAsyncErrorsResponse, error) {
	out := new(ListCampaignExperimentAsyncErrorsResponse)
	err := c.cc.Invoke(ctx, "/google.ads.googleads.v3.services.CampaignExperimentService/ListCampaignExperimentAsyncErrors", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// CampaignExperimentServiceServer is the server API for CampaignExperimentService service.
type CampaignExperimentServiceServer interface {
	// Returns the requested campaign experiment in full detail.
	GetCampaignExperiment(context.Context, *GetCampaignExperimentRequest) (*resources.CampaignExperiment, error)
	// Creates a campaign experiment based on a campaign draft. The draft campaign
	// will be forked into a real campaign (called the experiment campaign) that
	// will begin serving ads if successfully created.
	//
	// The campaign experiment is created immediately with status INITIALIZING.
	// This method return a long running operation that tracks the forking of the
	// draft campaign. If the forking fails, a list of errors can be retrieved
	// using the ListCampaignExperimentAsyncErrors method. The operation's
	// metadata will be a StringValue containing the resource name of the created
	// campaign experiment.
	CreateCampaignExperiment(context.Context, *CreateCampaignExperimentRequest) (*longrunning.Operation, error)
	// Updates campaign experiments. Operation statuses are returned.
	MutateCampaignExperiments(context.Context, *MutateCampaignExperimentsRequest) (*MutateCampaignExperimentsResponse, error)
	// Graduates a campaign experiment to a full campaign. The base and experiment
	// campaigns will start running independently with their own budgets.
	GraduateCampaignExperiment(context.Context, *GraduateCampaignExperimentRequest) (*GraduateCampaignExperimentResponse, error)
	// Promotes the changes in a experiment campaign back to the base campaign.
	//
	// The campaign experiment is updated immediately with status PROMOTING.
	// This method return a long running operation that tracks the promoting of
	// the experiment campaign. If the promoting fails, a list of errors can be
	// retrieved using the ListCampaignExperimentAsyncErrors method.
	PromoteCampaignExperiment(context.Context, *PromoteCampaignExperimentRequest) (*longrunning.Operation, error)
	// Immediately ends a campaign experiment, changing the experiment's scheduled
	// end date and without waiting for end of day. End date is updated to be the
	// time of the request.
	EndCampaignExperiment(context.Context, *EndCampaignExperimentRequest) (*empty.Empty, error)
	// Returns all errors that occurred during CampaignExperiment create or
	// promote (whichever occurred last).
	// Supports standard list paging.
	ListCampaignExperimentAsyncErrors(context.Context, *ListCampaignExperimentAsyncErrorsRequest) (*ListCampaignExperimentAsyncErrorsResponse, error)
}

// UnimplementedCampaignExperimentServiceServer can be embedded to have forward compatible implementations.
type UnimplementedCampaignExperimentServiceServer struct {
}

func (*UnimplementedCampaignExperimentServiceServer) GetCampaignExperiment(ctx context.Context, req *GetCampaignExperimentRequest) (*resources.CampaignExperiment, error) {
	return nil, status1.Errorf(codes.Unimplemented, "method GetCampaignExperiment not implemented")
}
func (*UnimplementedCampaignExperimentServiceServer) CreateCampaignExperiment(ctx context.Context, req *CreateCampaignExperimentRequest) (*longrunning.Operation, error) {
	return nil, status1.Errorf(codes.Unimplemented, "method CreateCampaignExperiment not implemented")
}
func (*UnimplementedCampaignExperimentServiceServer) MutateCampaignExperiments(ctx context.Context, req *MutateCampaignExperimentsRequest) (*MutateCampaignExperimentsResponse, error) {
	return nil, status1.Errorf(codes.Unimplemented, "method MutateCampaignExperiments not implemented")
}
func (*UnimplementedCampaignExperimentServiceServer) GraduateCampaignExperiment(ctx context.Context, req *GraduateCampaignExperimentRequest) (*GraduateCampaignExperimentResponse, error) {
	return nil, status1.Errorf(codes.Unimplemented, "method GraduateCampaignExperiment not implemented")
}
func (*UnimplementedCampaignExperimentServiceServer) PromoteCampaignExperiment(ctx context.Context, req *PromoteCampaignExperimentRequest) (*longrunning.Operation, error) {
	return nil, status1.Errorf(codes.Unimplemented, "method PromoteCampaignExperiment not implemented")
}
func (*UnimplementedCampaignExperimentServiceServer) EndCampaignExperiment(ctx context.Context, req *EndCampaignExperimentRequest) (*empty.Empty, error) {
	return nil, status1.Errorf(codes.Unimplemented, "method EndCampaignExperiment not implemented")
}
func (*UnimplementedCampaignExperimentServiceServer) ListCampaignExperimentAsyncErrors(ctx context.Context, req *ListCampaignExperimentAsyncErrorsRequest) (*ListCampaignExperimentAsyncErrorsResponse, error) {
	return nil, status1.Errorf(codes.Unimplemented, "method ListCampaignExperimentAsyncErrors not implemented")
}

func RegisterCampaignExperimentServiceServer(s *grpc.Server, srv CampaignExperimentServiceServer) {
	s.RegisterService(&_CampaignExperimentService_serviceDesc, srv)
}

func _CampaignExperimentService_GetCampaignExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCampaignExperimentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CampaignExperimentServiceServer).GetCampaignExperiment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.ads.googleads.v3.services.CampaignExperimentService/GetCampaignExperiment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CampaignExperimentServiceServer).GetCampaignExperiment(ctx, req.(*GetCampaignExperimentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CampaignExperimentService_CreateCampaignExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateCampaignExperimentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CampaignExperimentServiceServer).CreateCampaignExperiment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.ads.googleads.v3.services.CampaignExperimentService/CreateCampaignExperiment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CampaignExperimentServiceServer).CreateCampaignExperiment(ctx, req.(*CreateCampaignExperimentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CampaignExperimentService_MutateCampaignExperiments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(MutateCampaignExperimentsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CampaignExperimentServiceServer).MutateCampaignExperiments(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.ads.googleads.v3.services.CampaignExperimentService/MutateCampaignExperiments",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CampaignExperimentServiceServer).MutateCampaignExperiments(ctx, req.(*MutateCampaignExperimentsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CampaignExperimentService_GraduateCampaignExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GraduateCampaignExperimentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CampaignExperimentServiceServer).GraduateCampaignExperiment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.ads.googleads.v3.services.CampaignExperimentService/GraduateCampaignExperiment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CampaignExperimentServiceServer).GraduateCampaignExperiment(ctx, req.(*GraduateCampaignExperimentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CampaignExperimentService_PromoteCampaignExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PromoteCampaignExperimentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CampaignExperimentServiceServer).PromoteCampaignExperiment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.ads.googleads.v3.services.CampaignExperimentService/PromoteCampaignExperiment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CampaignExperimentServiceServer).PromoteCampaignExperiment(ctx, req.(*PromoteCampaignExperimentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CampaignExperimentService_EndCampaignExperiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EndCampaignExperimentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CampaignExperimentServiceServer).EndCampaignExperiment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.ads.googleads.v3.services.CampaignExperimentService/EndCampaignExperiment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CampaignExperimentServiceServer).EndCampaignExperiment(ctx, req.(*EndCampaignExperimentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _CampaignExperimentService_ListCampaignExperimentAsyncErrors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListCampaignExperimentAsyncErrorsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(CampaignExperimentServiceServer).ListCampaignExperimentAsyncErrors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.ads.googleads.v3.services.CampaignExperimentService/ListCampaignExperimentAsyncErrors",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(CampaignExperimentServiceServer).ListCampaignExperimentAsyncErrors(ctx, req.(*ListCampaignExperimentAsyncErrorsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _CampaignExperimentService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.ads.googleads.v3.services.CampaignExperimentService",
	HandlerType: (*CampaignExperimentServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetCampaignExperiment",
			Handler:    _CampaignExperimentService_GetCampaignExperiment_Handler,
		},
		{
			MethodName: "CreateCampaignExperiment",
			Handler:    _CampaignExperimentService_CreateCampaignExperiment_Handler,
		},
		{
			MethodName: "MutateCampaignExperiments",
			Handler:    _CampaignExperimentService_MutateCampaignExperiments_Handler,
		},
		{
			MethodName: "GraduateCampaignExperiment",
			Handler:    _CampaignExperimentService_GraduateCampaignExperiment_Handler,
		},
		{
			MethodName: "PromoteCampaignExperiment",
			Handler:    _CampaignExperimentService_PromoteCampaignExperiment_Handler,
		},
		{
			MethodName: "EndCampaignExperiment",
			Handler:    _CampaignExperimentService_EndCampaignExperiment_Handler,
		},
		{
			MethodName: "ListCampaignExperimentAsyncErrors",
			Handler:    _CampaignExperimentService_ListCampaignExperimentAsyncErrors_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/ads/googleads/v3/services/campaign_experiment_service.proto",
}
