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

// Describes the status of returned resource.
type ChangeStatus struct {
	// The resource name of the change status.
	// Change status resource names have the form:
	//
	// `customers/{customer_id}/changeStatus/{change_status_id}`
	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	// Time at which the most recent change has occurred on this resource.
	LastChangeDateTime *wrappers.StringValue `protobuf:"bytes,3,opt,name=last_change_date_time,json=lastChangeDateTime,proto3" json:"last_change_date_time,omitempty"`
	// Represents the type of the changed resource. This dictates what fields
	// will be set. For example, for AD_GROUP, campaign and ad_group fields will
	// be set.
	ResourceType enums.ChangeStatusResourceTypeEnum_ChangeStatusResourceType `protobuf:"varint,4,opt,name=resource_type,json=resourceType,proto3,enum=google.ads.googleads.v3.enums.ChangeStatusResourceTypeEnum_ChangeStatusResourceType" json:"resource_type,omitempty"`
	// The Campaign affected by this change.
	Campaign *wrappers.StringValue `protobuf:"bytes,5,opt,name=campaign,proto3" json:"campaign,omitempty"`
	// The AdGroup affected by this change.
	AdGroup *wrappers.StringValue `protobuf:"bytes,6,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"`
	// Represents the status of the changed resource.
	ResourceStatus enums.ChangeStatusOperationEnum_ChangeStatusOperation `protobuf:"varint,8,opt,name=resource_status,json=resourceStatus,proto3,enum=google.ads.googleads.v3.enums.ChangeStatusOperationEnum_ChangeStatusOperation" json:"resource_status,omitempty"`
	// The AdGroupAd affected by this change.
	AdGroupAd *wrappers.StringValue `protobuf:"bytes,9,opt,name=ad_group_ad,json=adGroupAd,proto3" json:"ad_group_ad,omitempty"`
	// The AdGroupCriterion affected by this change.
	AdGroupCriterion *wrappers.StringValue `protobuf:"bytes,10,opt,name=ad_group_criterion,json=adGroupCriterion,proto3" json:"ad_group_criterion,omitempty"`
	// The CampaignCriterion affected by this change.
	CampaignCriterion *wrappers.StringValue `protobuf:"bytes,11,opt,name=campaign_criterion,json=campaignCriterion,proto3" json:"campaign_criterion,omitempty"`
	// The Feed affected by this change.
	Feed *wrappers.StringValue `protobuf:"bytes,12,opt,name=feed,proto3" json:"feed,omitempty"`
	// The FeedItem affected by this change.
	FeedItem *wrappers.StringValue `protobuf:"bytes,13,opt,name=feed_item,json=feedItem,proto3" json:"feed_item,omitempty"`
	// The AdGroupFeed affected by this change.
	AdGroupFeed *wrappers.StringValue `protobuf:"bytes,14,opt,name=ad_group_feed,json=adGroupFeed,proto3" json:"ad_group_feed,omitempty"`
	// The CampaignFeed affected by this change.
	CampaignFeed *wrappers.StringValue `protobuf:"bytes,15,opt,name=campaign_feed,json=campaignFeed,proto3" json:"campaign_feed,omitempty"`
	// The AdGroupBidModifier affected by this change.
	AdGroupBidModifier   *wrappers.StringValue `protobuf:"bytes,16,opt,name=ad_group_bid_modifier,json=adGroupBidModifier,proto3" json:"ad_group_bid_modifier,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_ChangeStatus proto.InternalMessageInfo

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

func (m *ChangeStatus) GetLastChangeDateTime() *wrappers.StringValue {
	if m != nil {
		return m.LastChangeDateTime
	}
	return nil
}

func (m *ChangeStatus) GetResourceType() enums.ChangeStatusResourceTypeEnum_ChangeStatusResourceType {
	if m != nil {
		return m.ResourceType
	}
	return enums.ChangeStatusResourceTypeEnum_UNSPECIFIED
}

func (m *ChangeStatus) GetCampaign() *wrappers.StringValue {
	if m != nil {
		return m.Campaign
	}
	return nil
}

func (m *ChangeStatus) GetAdGroup() *wrappers.StringValue {
	if m != nil {
		return m.AdGroup
	}
	return nil
}

func (m *ChangeStatus) GetResourceStatus() enums.ChangeStatusOperationEnum_ChangeStatusOperation {
	if m != nil {
		return m.ResourceStatus
	}
	return enums.ChangeStatusOperationEnum_UNSPECIFIED
}

func (m *ChangeStatus) GetAdGroupAd() *wrappers.StringValue {
	if m != nil {
		return m.AdGroupAd
	}
	return nil
}

func (m *ChangeStatus) GetAdGroupCriterion() *wrappers.StringValue {
	if m != nil {
		return m.AdGroupCriterion
	}
	return nil
}

func (m *ChangeStatus) GetCampaignCriterion() *wrappers.StringValue {
	if m != nil {
		return m.CampaignCriterion
	}
	return nil
}

func (m *ChangeStatus) GetFeed() *wrappers.StringValue {
	if m != nil {
		return m.Feed
	}
	return nil
}

func (m *ChangeStatus) GetFeedItem() *wrappers.StringValue {
	if m != nil {
		return m.FeedItem
	}
	return nil
}

func (m *ChangeStatus) GetAdGroupFeed() *wrappers.StringValue {
	if m != nil {
		return m.AdGroupFeed
	}
	return nil
}

func (m *ChangeStatus) GetCampaignFeed() *wrappers.StringValue {
	if m != nil {
		return m.CampaignFeed
	}
	return nil
}

func (m *ChangeStatus) GetAdGroupBidModifier() *wrappers.StringValue {
	if m != nil {
		return m.AdGroupBidModifier
	}
	return nil
}

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

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

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