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

// A field or resource (artifact) used by GoogleAdsService.
type GoogleAdsField struct {
	// Output only. The resource name of the artifact.
	// Artifact resource names have the form:
	//
	// `googleAdsFields/{name}`
	ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	// Output only. The name of the artifact.
	Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// Output only. The category of the artifact.
	Category enums.GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory `protobuf:"varint,3,opt,name=category,proto3,enum=google.ads.googleads.v3.enums.GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory" json:"category,omitempty"`
	// Output only. Whether the artifact can be used in a SELECT clause in search
	// queries.
	Selectable *wrappers.BoolValue `protobuf:"bytes,4,opt,name=selectable,proto3" json:"selectable,omitempty"`
	// Output only. Whether the artifact can be used in a WHERE clause in search
	// queries.
	Filterable *wrappers.BoolValue `protobuf:"bytes,5,opt,name=filterable,proto3" json:"filterable,omitempty"`
	// Output only. Whether the artifact can be used in a ORDER BY clause in search
	// queries.
	Sortable *wrappers.BoolValue `protobuf:"bytes,6,opt,name=sortable,proto3" json:"sortable,omitempty"`
	// Output only. The names of all resources, segments, and metrics that are selectable with
	// the described artifact.
	SelectableWith []*wrappers.StringValue `protobuf:"bytes,7,rep,name=selectable_with,json=selectableWith,proto3" json:"selectable_with,omitempty"`
	// Output only. The names of all resources that are selectable with the described
	// artifact. Fields from these resources do not segment metrics when included
	// in search queries.
	//
	// This field is only set for artifacts whose category is RESOURCE.
	AttributeResources []*wrappers.StringValue `protobuf:"bytes,8,rep,name=attribute_resources,json=attributeResources,proto3" json:"attribute_resources,omitempty"`
	// Output only. At and beyond version V1 this field lists the names of all metrics that are
	// selectable with the described artifact when it is used in the FROM clause.
	// It is only set for artifacts whose category is RESOURCE.
	//
	// Before version V1 this field lists the names of all metrics that are
	// selectable with the described artifact. It is only set for artifacts whose
	// category is either RESOURCE or SEGMENT
	Metrics []*wrappers.StringValue `protobuf:"bytes,9,rep,name=metrics,proto3" json:"metrics,omitempty"`
	// Output only. At and beyond version V1 this field lists the names of all artifacts,
	// whether a segment or another resource, that segment metrics when included
	// in search queries and when the described artifact is used in the FROM
	// clause. It is only set for artifacts whose category is RESOURCE.
	//
	// Before version V1 this field lists the names of all artifacts, whether a
	// segment or another resource, that segment metrics when included in search
	// queries. It is only set for artifacts of category RESOURCE, SEGMENT or
	// METRIC.
	Segments []*wrappers.StringValue `protobuf:"bytes,10,rep,name=segments,proto3" json:"segments,omitempty"`
	// Output only. Values the artifact can assume if it is a field of type ENUM.
	//
	// This field is only set for artifacts of category SEGMENT or ATTRIBUTE.
	EnumValues []*wrappers.StringValue `protobuf:"bytes,11,rep,name=enum_values,json=enumValues,proto3" json:"enum_values,omitempty"`
	// Output only. This field determines the operators that can be used with the artifact
	// in WHERE clauses.
	DataType enums.GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType `protobuf:"varint,12,opt,name=data_type,json=dataType,proto3,enum=google.ads.googleads.v3.enums.GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType" json:"data_type,omitempty"`
	// Output only. The URL of proto describing the artifact's data type.
	TypeUrl *wrappers.StringValue `protobuf:"bytes,13,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
	// Output only. Whether the field artifact is repeated.
	IsRepeated           *wrappers.BoolValue `protobuf:"bytes,14,opt,name=is_repeated,json=isRepeated,proto3" json:"is_repeated,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

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

var xxx_messageInfo_GoogleAdsField proto.InternalMessageInfo

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

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

func (m *GoogleAdsField) GetCategory() enums.GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory {
	if m != nil {
		return m.Category
	}
	return enums.GoogleAdsFieldCategoryEnum_UNSPECIFIED
}

func (m *GoogleAdsField) GetSelectable() *wrappers.BoolValue {
	if m != nil {
		return m.Selectable
	}
	return nil
}

func (m *GoogleAdsField) GetFilterable() *wrappers.BoolValue {
	if m != nil {
		return m.Filterable
	}
	return nil
}

func (m *GoogleAdsField) GetSortable() *wrappers.BoolValue {
	if m != nil {
		return m.Sortable
	}
	return nil
}

func (m *GoogleAdsField) GetSelectableWith() []*wrappers.StringValue {
	if m != nil {
		return m.SelectableWith
	}
	return nil
}

func (m *GoogleAdsField) GetAttributeResources() []*wrappers.StringValue {
	if m != nil {
		return m.AttributeResources
	}
	return nil
}

func (m *GoogleAdsField) GetMetrics() []*wrappers.StringValue {
	if m != nil {
		return m.Metrics
	}
	return nil
}

func (m *GoogleAdsField) GetSegments() []*wrappers.StringValue {
	if m != nil {
		return m.Segments
	}
	return nil
}

func (m *GoogleAdsField) GetEnumValues() []*wrappers.StringValue {
	if m != nil {
		return m.EnumValues
	}
	return nil
}

func (m *GoogleAdsField) GetDataType() enums.GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType {
	if m != nil {
		return m.DataType
	}
	return enums.GoogleAdsFieldDataTypeEnum_UNSPECIFIED
}

func (m *GoogleAdsField) GetTypeUrl() *wrappers.StringValue {
	if m != nil {
		return m.TypeUrl
	}
	return nil
}

func (m *GoogleAdsField) GetIsRepeated() *wrappers.BoolValue {
	if m != nil {
		return m.IsRepeated
	}
	return nil
}

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

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

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