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

package promotion_impression

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

// PromotionType refers to the different types of campaigns that can be run.
type PromotionType int32

const (
	PromotionType_PROMOTION_TYPE_INVALID         PromotionType = 0
	PromotionType_PROMOTION_TYPE_GAMEPLAY_PLUS   PromotionType = 1
	PromotionType_PROMOTION_TYPE_COMMUNITY_BOOST PromotionType = 2
	PromotionType_PROMOTION_TYPE_NEW_PARTNER     PromotionType = 3
	PromotionType_PROMOTION_TYPE_HIGH_AD_DENSITY PromotionType = 4
)

var PromotionType_name = map[int32]string{
	0: "PROMOTION_TYPE_INVALID",
	1: "PROMOTION_TYPE_GAMEPLAY_PLUS",
	2: "PROMOTION_TYPE_COMMUNITY_BOOST",
	3: "PROMOTION_TYPE_NEW_PARTNER",
	4: "PROMOTION_TYPE_HIGH_AD_DENSITY",
}
var PromotionType_value = map[string]int32{
	"PROMOTION_TYPE_INVALID":         0,
	"PROMOTION_TYPE_GAMEPLAY_PLUS":   1,
	"PROMOTION_TYPE_COMMUNITY_BOOST": 2,
	"PROMOTION_TYPE_NEW_PARTNER":     3,
	"PROMOTION_TYPE_HIGH_AD_DENSITY": 4,
}

func (x PromotionType) String() string {
	return proto.EnumName(PromotionType_name, int32(x))
}
func (PromotionType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_create_90f1d4ab0a701897, []int{0}
}

// GoalMetric refers to the unit of measurement used to track progress of a campaign.
type GoalMetric int32

const (
	GoalMetric_GOAL_METRIC_INVALID     GoalMetric = 0
	GoalMetric_GOAL_METRIC_IMPRESSIONS GoalMetric = 1
	GoalMetric_GOAL_METRIC_CLICKS      GoalMetric = 2
	GoalMetric_GOAL_METRIC_VIDEO_PLAYS GoalMetric = 3
)

var GoalMetric_name = map[int32]string{
	0: "GOAL_METRIC_INVALID",
	1: "GOAL_METRIC_IMPRESSIONS",
	2: "GOAL_METRIC_CLICKS",
	3: "GOAL_METRIC_VIDEO_PLAYS",
}
var GoalMetric_value = map[string]int32{
	"GOAL_METRIC_INVALID":     0,
	"GOAL_METRIC_IMPRESSIONS": 1,
	"GOAL_METRIC_CLICKS":      2,
	"GOAL_METRIC_VIDEO_PLAYS": 3,
}

func (x GoalMetric) String() string {
	return proto.EnumName(GoalMetric_name, int32(x))
}
func (GoalMetric) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_create_90f1d4ab0a701897, []int{1}
}

// PromotionLocation refers to the surface on Twitch where a stream will be placed as part of its promotion.
type PromotionLocation int32

const (
	PromotionLocation_PROMOTION_LOCATION_INVALID                   PromotionLocation = 0
	PromotionLocation_PROMOTION_LOCATION_SIDE_NAV                  PromotionLocation = 1
	PromotionLocation_PROMOTION_LOCATION_HOMEPAGE_LIVE_RECOMMENDED PromotionLocation = 2
)

var PromotionLocation_name = map[int32]string{
	0: "PROMOTION_LOCATION_INVALID",
	1: "PROMOTION_LOCATION_SIDE_NAV",
	2: "PROMOTION_LOCATION_HOMEPAGE_LIVE_RECOMMENDED",
}
var PromotionLocation_value = map[string]int32{
	"PROMOTION_LOCATION_INVALID":                   0,
	"PROMOTION_LOCATION_SIDE_NAV":                  1,
	"PROMOTION_LOCATION_HOMEPAGE_LIVE_RECOMMENDED": 2,
}

func (x PromotionLocation) String() string {
	return proto.EnumName(PromotionLocation_name, int32(x))
}
func (PromotionLocation) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_create_90f1d4ab0a701897, []int{2}
}

// PromotionImpressionCreate triggers every time content is promoted to a viewer.
type PromotionImpressionCreate struct {
	// The unique item tracking id associated with a given promotion shown to a given user on page load. (Formatted as Version 4 UUID.)
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Metadata associated with the campaign being promoted.
	PromotionsCampaign *PromotionsCampaign `protobuf:"bytes,2,opt,name=promotions_campaign,json=promotionsCampaign,proto3" json:"promotions_campaign,omitempty"`
	// Metadata associated with the client.
	UserContext *UserContext `protobuf:"bytes,3,opt,name=user_context,json=userContext,proto3" json:"user_context,omitempty"`
	// The surface on Twitch where the promotion is placed.
	PromotionLocation    PromotionLocation `protobuf:"varint,4,opt,name=promotion_location,json=promotionLocation,proto3,enum=promotion_impression.PromotionLocation" json:"promotion_location,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

var xxx_messageInfo_PromotionImpressionCreate proto.InternalMessageInfo

func (m *PromotionImpressionCreate) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *PromotionImpressionCreate) GetPromotionsCampaign() *PromotionsCampaign {
	if m != nil {
		return m.PromotionsCampaign
	}
	return nil
}

func (m *PromotionImpressionCreate) GetUserContext() *UserContext {
	if m != nil {
		return m.UserContext
	}
	return nil
}

func (m *PromotionImpressionCreate) GetPromotionLocation() PromotionLocation {
	if m != nil {
		return m.PromotionLocation
	}
	return PromotionLocation_PROMOTION_LOCATION_INVALID
}

// PromotionsCampaign contains information about a promotional campaign.
type PromotionsCampaign struct {
	// The unique id of the promotions campaign. (Formatted as Version 4 UUID.)
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The unique id of the channel/creator being promoted (not the display name).
	PromotedCreatorId string `protobuf:"bytes,2,opt,name=promoted_creator_id,json=promotedCreatorId,proto3" json:"promoted_creator_id,omitempty"`
	// The type of the promotional campaign.
	PromotionType PromotionType `protobuf:"varint,3,opt,name=promotion_type,json=promotionType,proto3,enum=promotion_impression.PromotionType" json:"promotion_type,omitempty"`
	// The metric used to measure progress of the campaign.
	GoalMetric           GoalMetric `protobuf:"varint,4,opt,name=goal_metric,json=goalMetric,proto3,enum=promotion_impression.GoalMetric" json:"goal_metric,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

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

var xxx_messageInfo_PromotionsCampaign proto.InternalMessageInfo

func (m *PromotionsCampaign) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *PromotionsCampaign) GetPromotedCreatorId() string {
	if m != nil {
		return m.PromotedCreatorId
	}
	return ""
}

func (m *PromotionsCampaign) GetPromotionType() PromotionType {
	if m != nil {
		return m.PromotionType
	}
	return PromotionType_PROMOTION_TYPE_INVALID
}

func (m *PromotionsCampaign) GetGoalMetric() GoalMetric {
	if m != nil {
		return m.GoalMetric
	}
	return GoalMetric_GOAL_METRIC_INVALID
}

// UserContext contains information about a user/client.
type UserContext struct {
	// The device id of the client visiting Twitch.
	DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	// The id of a logged-in user, or null for a user who isn't logged in.
	UserId string `protobuf:"bytes,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// The platform being used to access Twitch, i.e. web, mobile_web, ios, android, etc.
	Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"`
	// A 2-character country code generated by IP geolocation.
	Country string `protobuf:"bytes,4,opt,name=country,proto3" json:"country,omitempty"`
	// The languages in a user's language cookie.
	Languages            []string `protobuf:"bytes,5,rep,name=languages,proto3" json:"languages,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

var xxx_messageInfo_UserContext proto.InternalMessageInfo

func (m *UserContext) GetDeviceId() string {
	if m != nil {
		return m.DeviceId
	}
	return ""
}

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

func (m *UserContext) GetPlatform() string {
	if m != nil {
		return m.Platform
	}
	return ""
}

func (m *UserContext) GetCountry() string {
	if m != nil {
		return m.Country
	}
	return ""
}

func (m *UserContext) GetLanguages() []string {
	if m != nil {
		return m.Languages
	}
	return nil
}

func init() {
	proto.RegisterType((*PromotionImpressionCreate)(nil), "promotion_impression.PromotionImpressionCreate")
	proto.RegisterType((*PromotionsCampaign)(nil), "promotion_impression.PromotionsCampaign")
	proto.RegisterType((*UserContext)(nil), "promotion_impression.UserContext")
	proto.RegisterEnum("promotion_impression.PromotionType", PromotionType_name, PromotionType_value)
	proto.RegisterEnum("promotion_impression.GoalMetric", GoalMetric_name, GoalMetric_value)
	proto.RegisterEnum("promotion_impression.PromotionLocation", PromotionLocation_name, PromotionLocation_value)
}

func init() {
	proto.RegisterFile("promotion_impression/create.proto", fileDescriptor_create_90f1d4ab0a701897)
}

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