// Copyright 2019 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: lab_platform/stable_version.proto

package lab_platform

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)
)

// StableVersions is a structure containing all of the versions for various
// components: CrOS itself, the firmware image, and the testing firmware image (faft).
// Next Tag: 4
type StableVersions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cros     []*StableCrosVersion     `protobuf:"bytes,1,rep,name=cros,proto3" json:"cros,omitempty"`
	Faft     []*StableFaftVersion     `protobuf:"bytes,2,rep,name=faft,proto3" json:"faft,omitempty"`
	Firmware []*StableFirmwareVersion `protobuf:"bytes,3,rep,name=firmware,proto3" json:"firmware,omitempty"`
}

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

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

func (*StableVersions) ProtoMessage() {}

func (x *StableVersions) ProtoReflect() protoreflect.Message {
	mi := &file_lab_platform_stable_version_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 StableVersions.ProtoReflect.Descriptor instead.
func (*StableVersions) Descriptor() ([]byte, []int) {
	return file_lab_platform_stable_version_proto_rawDescGZIP(), []int{0}
}

func (x *StableVersions) GetCros() []*StableCrosVersion {
	if x != nil {
		return x.Cros
	}
	return nil
}

func (x *StableVersions) GetFaft() []*StableFaftVersion {
	if x != nil {
		return x.Faft
	}
	return nil
}

func (x *StableVersions) GetFirmware() []*StableFirmwareVersion {
	if x != nil {
		return x.Firmware
	}
	return nil
}

var File_lab_platform_stable_version_proto protoreflect.FileDescriptor

var file_lab_platform_stable_version_proto_rawDesc = []byte{
	0x0a, 0x21, 0x6c, 0x61, 0x62, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73,
	0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x6c, 0x61, 0x62, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
	0x6d, 0x1a, 0x26, 0x6c, 0x61, 0x62, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f,
	0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x6c, 0x61, 0x62, 0x5f, 0x70,
	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66,
	0x61, 0x66, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x1a, 0x2a, 0x6c, 0x61, 0x62, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f,
	0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbb, 0x01,
	0x0a, 0x0e, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73,
	0x12, 0x33, 0x0a, 0x04, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f,
	0x2e, 0x6c, 0x61, 0x62, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x53, 0x74,
	0x61, 0x62, 0x6c, 0x65, 0x43, 0x72, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52,
	0x04, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x33, 0x0a, 0x04, 0x66, 0x61, 0x66, 0x74, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x61, 0x62, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x2e, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x61, 0x66, 0x74, 0x56, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x66, 0x61, 0x66, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x66, 0x69,
	0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c,
	0x61, 0x62, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x53, 0x74, 0x61, 0x62,
	0x6c, 0x65, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x52, 0x08, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x42, 0x38, 0x5a, 0x36, 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, 0x6c, 0x61, 0x62, 0x5f, 0x70, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_lab_platform_stable_version_proto_rawDescOnce sync.Once
	file_lab_platform_stable_version_proto_rawDescData = file_lab_platform_stable_version_proto_rawDesc
)

func file_lab_platform_stable_version_proto_rawDescGZIP() []byte {
	file_lab_platform_stable_version_proto_rawDescOnce.Do(func() {
		file_lab_platform_stable_version_proto_rawDescData = protoimpl.X.CompressGZIP(file_lab_platform_stable_version_proto_rawDescData)
	})
	return file_lab_platform_stable_version_proto_rawDescData
}

var file_lab_platform_stable_version_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
var file_lab_platform_stable_version_proto_goTypes = []interface{}{
	(*StableVersions)(nil),        // 0: lab_platform.StableVersions
	(*StableCrosVersion)(nil),     // 1: lab_platform.StableCrosVersion
	(*StableFaftVersion)(nil),     // 2: lab_platform.StableFaftVersion
	(*StableFirmwareVersion)(nil), // 3: lab_platform.StableFirmwareVersion
}
var file_lab_platform_stable_version_proto_depIdxs = []int32{
	1, // 0: lab_platform.StableVersions.cros:type_name -> lab_platform.StableCrosVersion
	2, // 1: lab_platform.StableVersions.faft:type_name -> lab_platform.StableFaftVersion
	3, // 2: lab_platform.StableVersions.firmware:type_name -> lab_platform.StableFirmwareVersion
	3, // [3:3] is the sub-list for method output_type
	3, // [3:3] is the sub-list for method input_type
	3, // [3:3] is the sub-list for extension type_name
	3, // [3:3] is the sub-list for extension extendee
	0, // [0:3] is the sub-list for field type_name
}

func init() { file_lab_platform_stable_version_proto_init() }
func file_lab_platform_stable_version_proto_init() {
	if File_lab_platform_stable_version_proto != nil {
		return
	}
	file_lab_platform_stable_cros_version_proto_init()
	file_lab_platform_stable_faft_version_proto_init()
	file_lab_platform_stable_firmware_version_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_lab_platform_stable_version_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StableVersions); 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_lab_platform_stable_version_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   1,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_lab_platform_stable_version_proto_goTypes,
		DependencyIndexes: file_lab_platform_stable_version_proto_depIdxs,
		MessageInfos:      file_lab_platform_stable_version_proto_msgTypes,
	}.Build()
	File_lab_platform_stable_version_proto = out.File
	file_lab_platform_stable_version_proto_rawDesc = nil
	file_lab_platform_stable_version_proto_goTypes = nil
	file_lab_platform_stable_version_proto_depIdxs = nil
}
