// Code generated by protoc-gen-go. DO NOT EDIT.
// source: subscriber_badge_flair/create.proto

package subscriber_badge_flair

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

// 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.ProtoPackageIsVersion2 // please upgrade the proto package

// SubTier is the enumerated values that a sub is normally.
type SubTier int32

const (
	// default case is an invalid sub tier
	SubTier_SUB_TIER_INVALID SubTier = 0
	// tier 1 subs
	SubTier_SUB_TIER_1 SubTier = 1
	// tier 2 subs
	SubTier_SUB_TIER_2 SubTier = 2
	// tier 3 subs
	SubTier_SUB_TIER_3 SubTier = 3
)

var SubTier_name = map[int32]string{
	0: "SUB_TIER_INVALID",
	1: "SUB_TIER_1",
	2: "SUB_TIER_2",
	3: "SUB_TIER_3",
}
var SubTier_value = map[string]int32{
	"SUB_TIER_INVALID": 0,
	"SUB_TIER_1":       1,
	"SUB_TIER_2":       2,
	"SUB_TIER_3":       3,
}

func (x SubTier) String() string {
	return proto.EnumName(SubTier_name, int32(x))
}
func (SubTier) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_create_bf10f77be38d978b, []int{0}
}

// SubscriberBadgeFlairCreate triggers when a user uploads a new subscriber badge flair.
type SubscriberBadgeFlairCreate struct {
	// user_id refers to the creator who uploaded a new subscriber badge.
	UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// flair is the subscriber badge modifier asset that is to be composited over a subscriber badge.
	Flair *BadgeAsset `protobuf:"bytes,2,opt,name=flair,proto3" json:"flair,omitempty"`
	// tier refers to the subscription tier of badges that this flair will display on.
	Tier                 *Tier    `protobuf:"bytes,3,opt,name=tier,proto3" json:"tier,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SubscriberBadgeFlairCreate) Reset()         { *m = SubscriberBadgeFlairCreate{} }
func (m *SubscriberBadgeFlairCreate) String() string { return proto.CompactTextString(m) }
func (*SubscriberBadgeFlairCreate) ProtoMessage()    {}
func (*SubscriberBadgeFlairCreate) Descriptor() ([]byte, []int) {
	return fileDescriptor_create_bf10f77be38d978b, []int{0}
}
func (m *SubscriberBadgeFlairCreate) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SubscriberBadgeFlairCreate.Unmarshal(m, b)
}
func (m *SubscriberBadgeFlairCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SubscriberBadgeFlairCreate.Marshal(b, m, deterministic)
}
func (dst *SubscriberBadgeFlairCreate) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SubscriberBadgeFlairCreate.Merge(dst, src)
}
func (m *SubscriberBadgeFlairCreate) XXX_Size() int {
	return xxx_messageInfo_SubscriberBadgeFlairCreate.Size(m)
}
func (m *SubscriberBadgeFlairCreate) XXX_DiscardUnknown() {
	xxx_messageInfo_SubscriberBadgeFlairCreate.DiscardUnknown(m)
}

var xxx_messageInfo_SubscriberBadgeFlairCreate proto.InternalMessageInfo

func (m *SubscriberBadgeFlairCreate) GetUserId() string {
	if m != nil {
		return m.UserId
	}
	return ""
}

func (m *SubscriberBadgeFlairCreate) GetFlair() *BadgeAsset {
	if m != nil {
		return m.Flair
	}
	return nil
}

func (m *SubscriberBadgeFlairCreate) GetTier() *Tier {
	if m != nil {
		return m.Tier
	}
	return nil
}

// BadgeAsset is the badge related asset uploaded in various sizes.
type BadgeAsset struct {
	// image_url_1x refers to the url of the 18x18 asset.
	ImageUrl_1X string `protobuf:"bytes,1,opt,name=image_url_1x,json=imageUrl1x,proto3" json:"image_url_1x,omitempty"`
	// image_url_2x refers to the url of the 36x36 asset.
	ImageUrl_2X string `protobuf:"bytes,2,opt,name=image_url_2x,json=imageUrl2x,proto3" json:"image_url_2x,omitempty"`
	// image_url_4x refers to the url of the 72x72 asset.
	ImageUrl_4X          string   `protobuf:"bytes,3,opt,name=image_url_4x,json=imageUrl4x,proto3" json:"image_url_4x,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BadgeAsset) Reset()         { *m = BadgeAsset{} }
func (m *BadgeAsset) String() string { return proto.CompactTextString(m) }
func (*BadgeAsset) ProtoMessage()    {}
func (*BadgeAsset) Descriptor() ([]byte, []int) {
	return fileDescriptor_create_bf10f77be38d978b, []int{1}
}
func (m *BadgeAsset) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BadgeAsset.Unmarshal(m, b)
}
func (m *BadgeAsset) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BadgeAsset.Marshal(b, m, deterministic)
}
func (dst *BadgeAsset) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BadgeAsset.Merge(dst, src)
}
func (m *BadgeAsset) XXX_Size() int {
	return xxx_messageInfo_BadgeAsset.Size(m)
}
func (m *BadgeAsset) XXX_DiscardUnknown() {
	xxx_messageInfo_BadgeAsset.DiscardUnknown(m)
}

var xxx_messageInfo_BadgeAsset proto.InternalMessageInfo

func (m *BadgeAsset) GetImageUrl_1X() string {
	if m != nil {
		return m.ImageUrl_1X
	}
	return ""
}

func (m *BadgeAsset) GetImageUrl_2X() string {
	if m != nil {
		return m.ImageUrl_2X
	}
	return ""
}

func (m *BadgeAsset) GetImageUrl_4X() string {
	if m != nil {
		return m.ImageUrl_4X
	}
	return ""
}

// Tier the tier value of sub that is attached.
type Tier struct {
	// the value can be either
	// - an enumerated value (tier 1, 2, 3 subs)
	// - a custom string value (OWL ticket product, legacy ticket products)
	//
	// Types that are valid to be assigned to Value:
	//	*Tier_Numeral
	//	*Tier_Custom
	Value                isTier_Value `protobuf_oneof:"value"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *Tier) Reset()         { *m = Tier{} }
func (m *Tier) String() string { return proto.CompactTextString(m) }
func (*Tier) ProtoMessage()    {}
func (*Tier) Descriptor() ([]byte, []int) {
	return fileDescriptor_create_bf10f77be38d978b, []int{2}
}
func (m *Tier) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Tier.Unmarshal(m, b)
}
func (m *Tier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Tier.Marshal(b, m, deterministic)
}
func (dst *Tier) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Tier.Merge(dst, src)
}
func (m *Tier) XXX_Size() int {
	return xxx_messageInfo_Tier.Size(m)
}
func (m *Tier) XXX_DiscardUnknown() {
	xxx_messageInfo_Tier.DiscardUnknown(m)
}

var xxx_messageInfo_Tier proto.InternalMessageInfo

type isTier_Value interface {
	isTier_Value()
}

type Tier_Numeral struct {
	Numeral SubTier `protobuf:"varint,1,opt,name=numeral,proto3,enum=subscriber_badge_flair.SubTier,oneof"`
}

type Tier_Custom struct {
	Custom string `protobuf:"bytes,2,opt,name=custom,proto3,oneof"`
}

func (*Tier_Numeral) isTier_Value() {}

func (*Tier_Custom) isTier_Value() {}

func (m *Tier) GetValue() isTier_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *Tier) GetNumeral() SubTier {
	if x, ok := m.GetValue().(*Tier_Numeral); ok {
		return x.Numeral
	}
	return SubTier_SUB_TIER_INVALID
}

func (m *Tier) GetCustom() string {
	if x, ok := m.GetValue().(*Tier_Custom); ok {
		return x.Custom
	}
	return ""
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*Tier) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _Tier_OneofMarshaler, _Tier_OneofUnmarshaler, _Tier_OneofSizer, []interface{}{
		(*Tier_Numeral)(nil),
		(*Tier_Custom)(nil),
	}
}

func _Tier_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*Tier)
	// value
	switch x := m.Value.(type) {
	case *Tier_Numeral:
		b.EncodeVarint(1<<3 | proto.WireVarint)
		b.EncodeVarint(uint64(x.Numeral))
	case *Tier_Custom:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		b.EncodeStringBytes(x.Custom)
	case nil:
	default:
		return fmt.Errorf("Tier.Value has unexpected type %T", x)
	}
	return nil
}

func _Tier_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*Tier)
	switch tag {
	case 1: // value.numeral
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Value = &Tier_Numeral{SubTier(x)}
		return true, err
	case 2: // value.custom
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Value = &Tier_Custom{x}
		return true, err
	default:
		return false, nil
	}
}

func _Tier_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*Tier)
	// value
	switch x := m.Value.(type) {
	case *Tier_Numeral:
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(x.Numeral))
	case *Tier_Custom:
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(len(x.Custom)))
		n += len(x.Custom)
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

func init() {
	proto.RegisterType((*SubscriberBadgeFlairCreate)(nil), "subscriber_badge_flair.SubscriberBadgeFlairCreate")
	proto.RegisterType((*BadgeAsset)(nil), "subscriber_badge_flair.BadgeAsset")
	proto.RegisterType((*Tier)(nil), "subscriber_badge_flair.Tier")
	proto.RegisterEnum("subscriber_badge_flair.SubTier", SubTier_name, SubTier_value)
}

func init() {
	proto.RegisterFile("subscriber_badge_flair/create.proto", fileDescriptor_create_bf10f77be38d978b)
}

var fileDescriptor_create_bf10f77be38d978b = []byte{
	// 317 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0x4f, 0x4b, 0xc3, 0x40,
	0x14, 0xc4, 0x9b, 0xfe, 0x0b, 0x3e, 0xa5, 0x84, 0x45, 0x34, 0x88, 0x60, 0x89, 0x97, 0xe2, 0xa1,
	0xda, 0xb4, 0x07, 0xc1, 0x53, 0xe3, 0x1f, 0x1a, 0x10, 0x85, 0x6d, 0xeb, 0xc1, 0xcb, 0xb2, 0x69,
	0xb7, 0x65, 0x21, 0xb5, 0xf2, 0x36, 0x2b, 0xf9, 0x3a, 0x7e, 0x53, 0xc9, 0x36, 0xd6, 0x46, 0x9a,
	0xe3, 0xbc, 0x99, 0xdf, 0x64, 0x20, 0x0b, 0x97, 0x4a, 0x47, 0x6a, 0x86, 0x32, 0x12, 0xc8, 0x22,
	0x3e, 0x5f, 0x0a, 0xb6, 0x88, 0xb9, 0xc4, 0xeb, 0x19, 0x0a, 0x9e, 0x88, 0xee, 0x27, 0xae, 0x93,
	0x35, 0x39, 0xd9, 0x1f, 0xf2, 0xbe, 0x2d, 0x38, 0x1b, 0x6f, 0xad, 0x20, 0x73, 0x9e, 0x32, 0xe3,
	0xde, 0xc0, 0xe4, 0x14, 0x6c, 0xad, 0x04, 0x32, 0x39, 0x77, 0xad, 0xb6, 0xd5, 0x39, 0xa0, 0xcd,
	0x4c, 0x86, 0x73, 0x72, 0x0b, 0x0d, 0x53, 0xe0, 0x56, 0xdb, 0x56, 0xe7, 0xd0, 0xf7, 0xba, 0xfb,
	0xfb, 0xbb, 0xa6, 0x71, 0xa8, 0x94, 0x48, 0xe8, 0x06, 0x20, 0x37, 0x50, 0x4f, 0xa4, 0x40, 0xb7,
	0x66, 0xc0, 0xf3, 0x32, 0x70, 0x22, 0x05, 0x52, 0x93, 0xf4, 0x10, 0xe0, 0xaf, 0x86, 0xb4, 0xe1,
	0x48, 0xae, 0xf8, 0x52, 0x30, 0x8d, 0x31, 0xeb, 0xa5, 0xf9, 0x2e, 0x30, 0xb7, 0x29, 0xc6, 0xbd,
	0xb4, 0x98, 0xf0, 0x53, 0x33, 0x71, 0x27, 0xe1, 0xff, 0x4b, 0x0c, 0x52, 0xb3, 0x65, 0x27, 0x31,
	0x48, 0xbd, 0x05, 0xd4, 0xb3, 0x05, 0xe4, 0x0e, 0xec, 0x0f, 0xbd, 0x12, 0xc8, 0x63, 0xf3, 0xa1,
	0x96, 0x7f, 0x51, 0x36, 0x78, 0xac, 0xa3, 0x8c, 0x18, 0x55, 0xe8, 0x2f, 0x41, 0x5c, 0x68, 0xce,
	0xb4, 0x4a, 0xd6, 0xab, 0xcd, 0x84, 0x51, 0x85, 0xe6, 0x3a, 0xb0, 0xa1, 0xf1, 0xc5, 0x63, 0x2d,
	0xae, 0x5e, 0xc1, 0xce, 0x41, 0x72, 0x0c, 0xce, 0x78, 0x1a, 0xb0, 0x49, 0xf8, 0x48, 0x59, 0xf8,
	0xf2, 0x36, 0x7c, 0x0e, 0x1f, 0x9c, 0x0a, 0x69, 0x01, 0x6c, 0xaf, 0x3d, 0xc7, 0x2a, 0x68, 0xdf,
	0xa9, 0x16, 0x74, 0xdf, 0xa9, 0x05, 0xee, 0x7b, 0xc9, 0xaf, 0x8e, 0x9a, 0xe6, 0x25, 0xf4, 0x7f,
	0x02, 0x00, 0x00, 0xff, 0xff, 0xbf, 0xae, 0xe5, 0xaa, 0x30, 0x02, 0x00, 0x00,
}
