// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.25.0-devel
// 	protoc        v3.6.1
// source: prototype/config_bundle.proto

package prototype

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type ConfigBundle struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Clients        []*Client        `protobuf:"bytes,1,rep,name=clients,proto3" json:"clients,omitempty"`
	ClientProfiles []*ClientProfile `protobuf:"bytes,2,rep,name=client_profiles,json=clientProfiles,proto3" json:"client_profiles,omitempty"`
	Milestones     []*Milestone     `protobuf:"bytes,3,rep,name=milestones,proto3" json:"milestones,omitempty"`
	DesignProjects []*DesignProject `protobuf:"bytes,4,rep,name=design_projects,json=designProjects,proto3" json:"design_projects,omitempty"`
}

func (x *ConfigBundle) Reset() {
	*x = ConfigBundle{}
	if protoimpl.UnsafeEnabled {
		mi := &file_prototype_config_bundle_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ConfigBundle) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ConfigBundle) ProtoMessage() {}

func (x *ConfigBundle) ProtoReflect() protoreflect.Message {
	mi := &file_prototype_config_bundle_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ConfigBundle.ProtoReflect.Descriptor instead.
func (*ConfigBundle) Descriptor() ([]byte, []int) {
	return file_prototype_config_bundle_proto_rawDescGZIP(), []int{0}
}

func (x *ConfigBundle) GetClients() []*Client {
	if x != nil {
		return x.Clients
	}
	return nil
}

func (x *ConfigBundle) GetClientProfiles() []*ClientProfile {
	if x != nil {
		return x.ClientProfiles
	}
	return nil
}

func (x *ConfigBundle) GetMilestones() []*Milestone {
	if x != nil {
		return x.Milestones
	}
	return nil
}

func (x *ConfigBundle) GetDesignProjects() []*DesignProject {
	if x != nil {
		return x.DesignProjects
	}
	return nil
}

var File_prototype_config_bundle_proto protoreflect.FileDescriptor

var file_prototype_config_bundle_proto_rawDesc = []byte{
	0x0a, 0x1d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
	0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x16, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x1e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x63, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x19, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x69,
	0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f,
	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf7, 0x01,
	0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x2b,
	0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0f, 0x63,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65,
	0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x0e,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x34,
	0x0a, 0x0a, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4d,
	0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x52, 0x0a, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x74,
	0x6f, 0x6e, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0f, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x70,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e,
	0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x50,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68,
	0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x63, 0x68, 0x72, 0x6f, 0x6d,
	0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x74, 0x79, 0x70, 0x65, 0x62, 0x06,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_prototype_config_bundle_proto_rawDescOnce sync.Once
	file_prototype_config_bundle_proto_rawDescData = file_prototype_config_bundle_proto_rawDesc
)

func file_prototype_config_bundle_proto_rawDescGZIP() []byte {
	file_prototype_config_bundle_proto_rawDescOnce.Do(func() {
		file_prototype_config_bundle_proto_rawDescData = protoimpl.X.CompressGZIP(file_prototype_config_bundle_proto_rawDescData)
	})
	return file_prototype_config_bundle_proto_rawDescData
}

var file_prototype_config_bundle_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_prototype_config_bundle_proto_goTypes = []interface{}{
	(*ConfigBundle)(nil),  // 0: prototype.ConfigBundle
	(*Client)(nil),        // 1: prototype.Client
	(*ClientProfile)(nil), // 2: prototype.ClientProfile
	(*Milestone)(nil),     // 3: prototype.Milestone
	(*DesignProject)(nil), // 4: prototype.DesignProject
}
var file_prototype_config_bundle_proto_depIdxs = []int32{
	1, // 0: prototype.ConfigBundle.clients:type_name -> prototype.Client
	2, // 1: prototype.ConfigBundle.client_profiles:type_name -> prototype.ClientProfile
	3, // 2: prototype.ConfigBundle.milestones:type_name -> prototype.Milestone
	4, // 3: prototype.ConfigBundle.design_projects:type_name -> prototype.DesignProject
	4, // [4:4] is the sub-list for method output_type
	4, // [4:4] is the sub-list for method input_type
	4, // [4:4] is the sub-list for extension type_name
	4, // [4:4] is the sub-list for extension extendee
	0, // [0:4] is the sub-list for field type_name
}

func init() { file_prototype_config_bundle_proto_init() }
func file_prototype_config_bundle_proto_init() {
	if File_prototype_config_bundle_proto != nil {
		return
	}
	file_prototype_client_proto_init()
	file_prototype_client_profile_proto_init()
	file_prototype_milestone_proto_init()
	file_prototype_design_project_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_prototype_config_bundle_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConfigBundle); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_prototype_config_bundle_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_prototype_config_bundle_proto_goTypes,
		DependencyIndexes: file_prototype_config_bundle_proto_depIdxs,
		MessageInfos:      file_prototype_config_bundle_proto_msgTypes,
	}.Build()
	File_prototype_config_bundle_proto = out.File
	file_prototype_config_bundle_proto_rawDesc = nil
	file_prototype_config_bundle_proto_goTypes = nil
	file_prototype_config_bundle_proto_depIdxs = nil
}
