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

package enums

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "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

// Enum containing the possible CriterionCategoryChannelAvailabilityMode.
type CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode int32

const (
	// Not specified.
	CriterionCategoryChannelAvailabilityModeEnum_UNSPECIFIED CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode = 0
	// Used for return value only. Represents value unknown in this version.
	CriterionCategoryChannelAvailabilityModeEnum_UNKNOWN CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode = 1
	// The category is available to campaigns of all channel types and subtypes.
	CriterionCategoryChannelAvailabilityModeEnum_ALL_CHANNELS CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode = 2
	// The category is available to campaigns of a specific channel type,
	// including all subtypes under it.
	CriterionCategoryChannelAvailabilityModeEnum_CHANNEL_TYPE_AND_ALL_SUBTYPES CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode = 3
	// The category is available to campaigns of a specific channel type and
	// subtype(s).
	CriterionCategoryChannelAvailabilityModeEnum_CHANNEL_TYPE_AND_SUBSET_SUBTYPES CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode = 4
)

var CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode_name = map[int32]string{
	0: "UNSPECIFIED",
	1: "UNKNOWN",
	2: "ALL_CHANNELS",
	3: "CHANNEL_TYPE_AND_ALL_SUBTYPES",
	4: "CHANNEL_TYPE_AND_SUBSET_SUBTYPES",
}

var CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode_value = map[string]int32{
	"UNSPECIFIED":                      0,
	"UNKNOWN":                          1,
	"ALL_CHANNELS":                     2,
	"CHANNEL_TYPE_AND_ALL_SUBTYPES":    3,
	"CHANNEL_TYPE_AND_SUBSET_SUBTYPES": 4,
}

func (x CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode) String() string {
	return proto.EnumName(CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode_name, int32(x))
}

func (CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_187b80cdb03fe27e, []int{0, 0}
}

// Describes channel availability mode for a criterion availability - whether
// the availability is meant to include all advertising channels, or a
// particular channel with all its channel subtypes, or a channel with a certain
// subset of channel subtypes.
type CriterionCategoryChannelAvailabilityModeEnum struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_CriterionCategoryChannelAvailabilityModeEnum proto.InternalMessageInfo

func init() {
	proto.RegisterEnum("google.ads.googleads.v3.enums.CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode", CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode_name, CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode_value)
	proto.RegisterType((*CriterionCategoryChannelAvailabilityModeEnum)(nil), "google.ads.googleads.v3.enums.CriterionCategoryChannelAvailabilityModeEnum")
}

func init() {
	proto.RegisterFile("google/ads/googleads/v3/enums/criterion_category_channel_availability_mode.proto", fileDescriptor_187b80cdb03fe27e)
}

var fileDescriptor_187b80cdb03fe27e = []byte{
	// 373 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x51, 0xc1, 0x6a, 0xe3, 0x30,
	0x14, 0x5c, 0x3b, 0xcb, 0x2e, 0x28, 0x0b, 0x6b, 0x7c, 0x5c, 0x36, 0xb0, 0x09, 0x7b, 0xd8, 0xc3,
	0x56, 0x3e, 0xf8, 0xa6, 0x9e, 0x64, 0xc7, 0x4d, 0x43, 0x53, 0xd7, 0xe0, 0x38, 0xa5, 0xc5, 0x20,
	0x14, 0x5b, 0xb8, 0x02, 0x5b, 0x0a, 0x96, 0x13, 0xc8, 0xb5, 0x9f, 0xd2, 0xde, 0xfa, 0x29, 0x3d,
	0xf7, 0x2b, 0xfa, 0x15, 0xc5, 0x76, 0x9c, 0x16, 0x4a, 0x4b, 0x2e, 0x62, 0x9e, 0xde, 0xbc, 0x19,
	0x69, 0x1e, 0x08, 0x32, 0x29, 0xb3, 0x9c, 0x59, 0x34, 0x55, 0x56, 0x0b, 0x6b, 0xb4, 0xb1, 0x2d,
	0x26, 0xd6, 0x85, 0xb2, 0x92, 0x92, 0x57, 0xac, 0xe4, 0x52, 0x90, 0x84, 0x56, 0x2c, 0x93, 0xe5,
	0x96, 0x24, 0x37, 0x54, 0x08, 0x96, 0x13, 0xba, 0xa1, 0x3c, 0xa7, 0x4b, 0x9e, 0xf3, 0x6a, 0x4b,
	0x0a, 0x99, 0x32, 0xb8, 0x2a, 0x65, 0x25, 0xcd, 0x41, 0x2b, 0x03, 0x69, 0xaa, 0xe0, 0x5e, 0x11,
	0x6e, 0x6c, 0xd8, 0x28, 0xfe, 0xfa, 0xdd, 0x19, 0xae, 0xb8, 0x45, 0x85, 0x90, 0x15, 0xad, 0xb8,
	0x14, 0xaa, 0x1d, 0x1e, 0x3d, 0x69, 0xe0, 0xbf, 0xdb, 0x79, 0xba, 0x3b, 0x4b, 0xb7, 0x75, 0xc4,
	0x6f, 0x0c, 0xcf, 0x65, 0xca, 0x3c, 0xb1, 0x2e, 0x46, 0xf7, 0x1a, 0xf8, 0x77, 0xe8, 0x80, 0xf9,
	0x13, 0xf4, 0x23, 0x3f, 0x0c, 0x3c, 0x77, 0x7a, 0x32, 0xf5, 0xc6, 0xc6, 0x17, 0xb3, 0x0f, 0xbe,
	0x47, 0xfe, 0x99, 0x7f, 0x71, 0xe9, 0x1b, 0x9a, 0x69, 0x80, 0x1f, 0x78, 0x36, 0x23, 0xee, 0x29,
	0xf6, 0x7d, 0x6f, 0x16, 0x1a, 0xba, 0x39, 0x04, 0x83, 0x5d, 0x45, 0xe6, 0x57, 0x81, 0x47, 0xb0,
	0x3f, 0x26, 0x35, 0x25, 0x8c, 0x9c, 0xba, 0x0e, 0x8d, 0x9e, 0xf9, 0x17, 0xfc, 0x79, 0x47, 0x09,
	0x23, 0x27, 0xf4, 0xe6, 0xaf, 0xac, 0xaf, 0xce, 0xad, 0x0e, 0x86, 0x89, 0x2c, 0xe0, 0xa7, 0xd1,
	0x38, 0x47, 0x87, 0x7e, 0x24, 0xa8, 0xb3, 0x0a, 0xb4, 0x6b, 0x67, 0xa7, 0x97, 0xc9, 0x9c, 0x8a,
	0x0c, 0xca, 0x32, 0xb3, 0x32, 0x26, 0x9a, 0x24, 0xbb, 0x65, 0xae, 0xb8, 0xfa, 0x60, 0xb7, 0xc7,
	0xcd, 0x79, 0xa7, 0xf7, 0x26, 0x18, 0x3f, 0xe8, 0x83, 0x49, 0x2b, 0x85, 0x53, 0x05, 0x5b, 0x58,
	0xa3, 0x85, 0x0d, 0xeb, 0x94, 0xd5, 0x63, 0xd7, 0x8f, 0x71, 0xaa, 0xe2, 0x7d, 0x3f, 0x5e, 0xd8,
	0x71, 0xd3, 0x7f, 0xd6, 0x87, 0xed, 0x25, 0x42, 0x38, 0x55, 0x08, 0xed, 0x19, 0x08, 0x2d, 0x6c,
	0x84, 0x1a, 0xce, 0xf2, 0x5b, 0xf3, 0x30, 0xfb, 0x25, 0x00, 0x00, 0xff, 0xff, 0xe7, 0x59, 0xb9,
	0x5c, 0x73, 0x02, 0x00, 0x00,
}
