// Code generated by protoc-gen-go. DO NOT EDIT.
// source: prototype/milestone.proto

package prototype

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	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.ProtoPackageIsVersion3 // please upgrade the proto package

// Defines planning details around release milestones that drive
// branching, device project planning, and release CI/testing.
type Milestone struct {
	// E.g. 86
	Number int32 `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
	// Initially planned branch date for the milestone.
	TargetBranchDate *Milestone_Date `protobuf:"bytes,2,opt,name=target_branch_date,json=targetBranchDate,proto3" json:"target_branch_date,omitempty"`
	// Actual branch name when the branch is created.
	// E.g. release-R86-13421.B
	BranchName string `protobuf:"bytes,3,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"`
	// Defines the overall timeline for channel releases of the given milestone.
	ChannelPlan []*Milestone_ChannelPlan `protobuf:"bytes,4,rep,name=channel_plan,json=channelPlan,proto3" json:"channel_plan,omitempty"`
	// Defines the builds that run for the given milestone.
	BuilderConfigs       []*BuilderConfig `protobuf:"bytes,5,rep,name=builder_configs,json=builderConfigs,proto3" json:"builder_configs,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

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

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

var xxx_messageInfo_Milestone proto.InternalMessageInfo

func (m *Milestone) GetNumber() int32 {
	if m != nil {
		return m.Number
	}
	return 0
}

func (m *Milestone) GetTargetBranchDate() *Milestone_Date {
	if m != nil {
		return m.TargetBranchDate
	}
	return nil
}

func (m *Milestone) GetBranchName() string {
	if m != nil {
		return m.BranchName
	}
	return ""
}

func (m *Milestone) GetChannelPlan() []*Milestone_ChannelPlan {
	if m != nil {
		return m.ChannelPlan
	}
	return nil
}

func (m *Milestone) GetBuilderConfigs() []*BuilderConfig {
	if m != nil {
		return m.BuilderConfigs
	}
	return nil
}

type Milestone_Date struct {
	// Format: YYYY-MM-DD (ISO 8601)
	// E.g. 2020-02-10
	Value                string   `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_Milestone_Date proto.InternalMessageInfo

func (m *Milestone_Date) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

// Defines a planned release date for a given channel
type Milestone_ChannelPlan struct {
	Channel              *Channel        `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
	TargetReleaseDate    *Milestone_Date `protobuf:"bytes,2,opt,name=target_release_date,json=targetReleaseDate,proto3" json:"target_release_date,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

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

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

var xxx_messageInfo_Milestone_ChannelPlan proto.InternalMessageInfo

func (m *Milestone_ChannelPlan) GetChannel() *Channel {
	if m != nil {
		return m.Channel
	}
	return nil
}

func (m *Milestone_ChannelPlan) GetTargetReleaseDate() *Milestone_Date {
	if m != nil {
		return m.TargetReleaseDate
	}
	return nil
}

func init() {
	proto.RegisterType((*Milestone)(nil), "prototype.Milestone")
	proto.RegisterType((*Milestone_Date)(nil), "prototype.Milestone.Date")
	proto.RegisterType((*Milestone_ChannelPlan)(nil), "prototype.Milestone.ChannelPlan")
}

func init() { proto.RegisterFile("prototype/milestone.proto", fileDescriptor_6ab89a7e2a69ffab) }

var fileDescriptor_6ab89a7e2a69ffab = []byte{
	// 340 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xcf, 0x4a, 0xfb, 0x40,
	0x10, 0xc7, 0xc9, 0xaf, 0x7f, 0x7e, 0x64, 0x22, 0xfe, 0x59, 0x45, 0xd3, 0x20, 0x1a, 0x3c, 0xe5,
	0x20, 0x09, 0xb4, 0xf8, 0x00, 0xb6, 0x82, 0x78, 0x50, 0x64, 0x8f, 0x5e, 0xc2, 0x26, 0x9d, 0xa6,
	0x81, 0xcd, 0x6e, 0xd9, 0x6c, 0x04, 0x5f, 0xc0, 0xa7, 0xf2, 0xe1, 0xa4, 0xbb, 0x69, 0x1a, 0xc1,
	0x83, 0xb7, 0xfd, 0xce, 0x7c, 0xe6, 0x33, 0xcb, 0xc0, 0x64, 0xa3, 0xa4, 0x96, 0xfa, 0x63, 0x83,
	0x49, 0x55, 0x72, 0xac, 0xb5, 0x14, 0x18, 0x9b, 0x1a, 0x71, 0xbb, 0x56, 0x70, 0xb5, 0xa7, 0xb2,
	0xa6, 0xe4, 0x4b, 0x54, 0x69, 0x2e, 0xc5, 0xaa, 0x2c, 0x2c, 0x1a, 0x5c, 0xec, 0xfb, 0xf9, 0x9a,
	0x09, 0x81, 0xdc, 0x36, 0x6e, 0xbe, 0x06, 0xe0, 0x3e, 0xef, 0xbc, 0xe4, 0x1c, 0xc6, 0xa2, 0xa9,
	0x32, 0x54, 0xbe, 0x13, 0x3a, 0xd1, 0x88, 0xb6, 0x89, 0x3c, 0x02, 0xd1, 0x4c, 0x15, 0xa8, 0xd3,
	0x4c, 0x31, 0x91, 0xaf, 0xd3, 0x25, 0xd3, 0xe8, 0xff, 0x0b, 0x9d, 0xc8, 0x9b, 0x4e, 0xe2, 0xce,
	0x1d, 0x77, 0xa6, 0xf8, 0x81, 0x69, 0xa4, 0xc7, 0x76, 0x68, 0x6e, 0x66, 0xb6, 0x15, 0x72, 0x0d,
	0x5e, 0x6b, 0x10, 0xac, 0x42, 0x7f, 0x10, 0x3a, 0x91, 0x4b, 0xc1, 0x96, 0x5e, 0x58, 0x85, 0x64,
	0x01, 0x07, 0xed, 0x07, 0xd3, 0x0d, 0x67, 0xc2, 0x1f, 0x86, 0x83, 0xc8, 0x9b, 0x86, 0xbf, 0xee,
	0x58, 0x58, 0xf0, 0x95, 0x33, 0x41, 0xbd, 0x7c, 0x1f, 0xc8, 0x3d, 0x1c, 0xfd, 0xbc, 0x42, 0xed,
	0x8f, 0x8c, 0xc7, 0xef, 0x79, 0xe6, 0x96, 0x58, 0x18, 0x80, 0x1e, 0x66, 0xfd, 0x58, 0x07, 0x97,
	0x30, 0x34, 0x1f, 0x3e, 0x83, 0xd1, 0x3b, 0xe3, 0x0d, 0x9a, 0x83, 0xb8, 0xd4, 0x86, 0xe0, 0xd3,
	0x01, 0xaf, 0xb7, 0x9d, 0xdc, 0xc2, 0xff, 0x76, 0xbf, 0xe1, 0xbc, 0x29, 0xe9, 0x2d, 0x6a, 0x41,
	0xba, 0x43, 0xc8, 0x13, 0x9c, 0xb6, 0xd7, 0x54, 0xc8, 0x91, 0xd5, 0xf8, 0xc7, 0x73, 0x9e, 0xd8,
	0x29, 0x6a, 0x87, 0xb6, 0xa5, 0xf9, 0xdd, 0xdb, 0xac, 0x90, 0x71, 0xbe, 0x56, 0xb2, 0x2a, 0x9b,
	0x2a, 0x96, 0xaa, 0x48, 0x76, 0x41, 0xd6, 0x49, 0x29, 0x56, 0x8a, 0x25, 0xc6, 0x97, 0x14, 0x32,
	0xe9, 0xc4, 0xd9, 0xd8, 0x3c, 0x67, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x39, 0xcf, 0xd7,
	0x5d, 0x02, 0x00, 0x00,
}
