// Code generated by protoc-gen-go. DO NOT EDIT.
// source: chromiumos/generate_build_plan.proto

package chromiumos

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

// The input proto for invocations of the Build Planner.
type GenerateBuildPlanRequest struct {
	// Serialized buildbucket GerritChanges, or none if this is a postsubmit run
	// or similar. Explicit proto import is avoided here to prevent a dependency
	// on the luci-go repo.
	// See https://chromium.googlesource.com/infra/luci/luci-go/+/master/buildbucket/proto/common.proto
	GerritChanges []*ProtoBytes `protobuf:"bytes,1,rep,name=gerrit_changes,json=gerritChanges,proto3" json:"gerrit_changes,omitempty"`
	// The manifest-internal snapshot commit hash that's being used for the current build.
	// Note that manifest_commit will be soon replaced with gitiles_commit below.
	ManifestCommit string `protobuf:"bytes,2,opt,name=manifest_commit,json=manifestCommit,proto3" json:"manifest_commit,omitempty"`
	// Serialized buildbucket GitilesCommit, representing the manifest or
	// manifest-internal commit to which the build is synced.
	GitilesCommit *ProtoBytes `protobuf:"bytes,4,opt,name=gitiles_commit,json=gitilesCommit,proto3" json:"gitiles_commit,omitempty"`
	// The BuilderConfigs to consider for skipping.
	BuilderConfigs       []*BuilderConfig `protobuf:"bytes,3,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 *GenerateBuildPlanRequest) Reset()         { *m = GenerateBuildPlanRequest{} }
func (m *GenerateBuildPlanRequest) String() string { return proto.CompactTextString(m) }
func (*GenerateBuildPlanRequest) ProtoMessage()    {}
func (*GenerateBuildPlanRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_2cc7c3ca2e27683f, []int{0}
}

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

var xxx_messageInfo_GenerateBuildPlanRequest proto.InternalMessageInfo

func (m *GenerateBuildPlanRequest) GetGerritChanges() []*ProtoBytes {
	if m != nil {
		return m.GerritChanges
	}
	return nil
}

func (m *GenerateBuildPlanRequest) GetManifestCommit() string {
	if m != nil {
		return m.ManifestCommit
	}
	return ""
}

func (m *GenerateBuildPlanRequest) GetGitilesCommit() *ProtoBytes {
	if m != nil {
		return m.GitilesCommit
	}
	return nil
}

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

// The output proto for invocations of the Build Planner.
type GenerateBuildPlanResponse struct {
	// BuilderConfigs that cannot be skipped.
	BuildsToRun []*BuilderConfig_Id `protobuf:"bytes,1,rep,name=builds_to_run,json=buildsToRun,proto3" json:"builds_to_run,omitempty"`
	// BuilderConfigs that can be skipped due to Portage dependency rules around
	// files that are known to never be relevant for Chrome OS builds.
	SkipForGlobalBuildIrrelevance []*BuilderConfig_Id `protobuf:"bytes,2,rep,name=skip_for_global_build_irrelevance,json=skipForGlobalBuildIrrelevance,proto3" json:"skip_for_global_build_irrelevance,omitempty"`
	// BuilderConfigs that can be skipped because of per-BuilderConfig RunWhen
	// rules.
	SkipForRunWhenRules  []*BuilderConfig_Id `protobuf:"bytes,3,rep,name=skip_for_run_when_rules,json=skipForRunWhenRules,proto3" json:"skip_for_run_when_rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

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

var xxx_messageInfo_GenerateBuildPlanResponse proto.InternalMessageInfo

func (m *GenerateBuildPlanResponse) GetBuildsToRun() []*BuilderConfig_Id {
	if m != nil {
		return m.BuildsToRun
	}
	return nil
}

func (m *GenerateBuildPlanResponse) GetSkipForGlobalBuildIrrelevance() []*BuilderConfig_Id {
	if m != nil {
		return m.SkipForGlobalBuildIrrelevance
	}
	return nil
}

func (m *GenerateBuildPlanResponse) GetSkipForRunWhenRules() []*BuilderConfig_Id {
	if m != nil {
		return m.SkipForRunWhenRules
	}
	return nil
}

func init() {
	proto.RegisterType((*GenerateBuildPlanRequest)(nil), "chromiumos.GenerateBuildPlanRequest")
	proto.RegisterType((*GenerateBuildPlanResponse)(nil), "chromiumos.GenerateBuildPlanResponse")
}

func init() {
	proto.RegisterFile("chromiumos/generate_build_plan.proto", fileDescriptor_2cc7c3ca2e27683f)
}

var fileDescriptor_2cc7c3ca2e27683f = []byte{
	// 374 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x5f, 0xab, 0xd3, 0x30,
	0x18, 0xc6, 0x59, 0x8f, 0x08, 0xe6, 0x70, 0x36, 0xa8, 0xe0, 0xba, 0xa1, 0x38, 0x87, 0xe0, 0xae,
	0x5a, 0x50, 0xf1, 0x4e, 0x90, 0x0e, 0x1c, 0xbb, 0x1b, 0x41, 0x10, 0xbc, 0x09, 0x69, 0xf7, 0x36,
	0x0d, 0xa6, 0x79, 0x6b, 0xfe, 0x28, 0x7e, 0x00, 0x3f, 0x84, 0xdf, 0x56, 0x9a, 0x76, 0x5b, 0x05,
	0x1d, 0xe7, 0xb2, 0x6f, 0x7e, 0xcf, 0xef, 0x69, 0xdf, 0x86, 0xbc, 0x2c, 0x6b, 0x83, 0x8d, 0xf4,
	0x0d, 0xda, 0x4c, 0x80, 0x06, 0xc3, 0x1d, 0xb0, 0xc2, 0x4b, 0x75, 0x64, 0xad, 0xe2, 0x3a, 0x6d,
	0x0d, 0x3a, 0x8c, 0xc9, 0x85, 0x5a, 0x3e, 0x1f, 0x25, 0x02, 0x08, 0x86, 0x95, 0xa8, 0x2b, 0x29,
	0x7a, 0x78, 0x39, 0x1f, 0x01, 0x25, 0x36, 0x0d, 0x0e, 0x96, 0xf5, 0xaf, 0x88, 0x24, 0xbb, 0xa1,
	0x23, 0xef, 0x92, 0x07, 0xc5, 0x35, 0x85, 0x6f, 0x1e, 0xac, 0x8b, 0xdf, 0x93, 0xa9, 0x00, 0x63,
	0xa4, 0x63, 0x65, 0xcd, 0xb5, 0x00, 0x9b, 0x4c, 0x56, 0x37, 0x9b, 0xdb, 0xd7, 0x4f, 0xd2, 0x8b,
	0x2e, 0x3d, 0x74, 0x9e, 0xfc, 0xa7, 0x03, 0x4b, 0xef, 0x7a, 0x7a, 0xdb, 0xc3, 0xf1, 0x2b, 0x32,
	0x6b, 0xb8, 0x96, 0x15, 0x58, 0xc7, 0xba, 0x52, 0xe9, 0x92, 0x68, 0x35, 0xd9, 0x3c, 0xa2, 0xd3,
	0xd3, 0x78, 0x1b, 0xa6, 0xa1, 0x47, 0x3a, 0xa9, 0xc0, 0x9e, 0xb8, 0x07, 0xab, 0xc9, 0xd5, 0x9e,
	0x9e, 0x1e, 0xe2, 0x39, 0x99, 0xfd, 0xfd, 0xd1, 0x36, 0xb9, 0x09, 0xef, 0xb9, 0x18, 0xe7, 0xf3,
	0x1e, 0xd9, 0x06, 0x82, 0x4e, 0x8b, 0xf1, 0xa3, 0x5d, 0xff, 0x8e, 0xc8, 0xe2, 0x1f, 0x7b, 0xb0,
	0x2d, 0x6a, 0x0b, 0xf1, 0x07, 0x72, 0x17, 0x78, 0xcb, 0x1c, 0x32, 0xe3, 0xf5, 0xb0, 0x87, 0xa7,
	0xff, 0xf5, 0xa7, 0xfb, 0x23, 0xbd, 0xed, 0x23, 0x9f, 0x90, 0x7a, 0x1d, 0x57, 0xe4, 0x85, 0xfd,
	0x2a, 0x5b, 0x56, 0xa1, 0x61, 0x42, 0x61, 0xc1, 0xd5, 0xf0, 0x47, 0xa5, 0x31, 0xa0, 0xe0, 0x3b,
	0xd7, 0x25, 0x24, 0xd1, 0x3d, 0xac, 0xcf, 0x3a, 0xcd, 0x47, 0x34, 0xbb, 0x20, 0x09, 0xc7, 0xfb,
	0x8b, 0x22, 0xa6, 0x64, 0x7e, 0xee, 0x31, 0x5e, 0xb3, 0x1f, 0x35, 0x68, 0x66, 0xbc, 0x82, 0xd3,
	0x4e, 0xae, 0xdb, 0x1f, 0x0f, 0x76, 0xea, 0xf5, 0xe7, 0x1a, 0x34, 0xed, 0x82, 0xf9, 0xbb, 0x2f,
	0x6f, 0x05, 0x9e, 0x63, 0x29, 0x1a, 0x91, 0x8d, 0xae, 0x93, 0xd4, 0x95, 0xe1, 0x59, 0xb8, 0x4d,
	0x99, 0xc0, 0xd1, 0x49, 0xf1, 0x30, 0x0c, 0xdf, 0xfc, 0x09, 0x00, 0x00, 0xff, 0xff, 0x90, 0x27,
	0xfd, 0x15, 0xd0, 0x02, 0x00, 0x00,
}
