// Code generated by protoc-gen-go. DO NOT EDIT.
// source: test_platform/skylab_local_state/load.proto

package skylab_local_state

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	skylab_test_runner "go.chromium.org/chromiumos/infra/proto/go/test_platform/skylab_test_runner"
	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

// LoadRequest defines the input of `skylab_local_state load`.
type LoadRequest struct {
	Config     *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	ResultsDir string  `protobuf:"bytes,2,opt,name=results_dir,json=resultsDir,proto3" json:"results_dir,omitempty"` // Deprecated: Do not use.
	// DUT hostname.
	DutName string `protobuf:"bytes,3,opt,name=dut_name,json=dutName,proto3" json:"dut_name,omitempty"`
	// Swarming run ID. Used in the results directory name.
	RunId string `protobuf:"bytes,4,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"`
	// DUT ID, used in the name of the DUT state cache file.
	DutId                string   `protobuf:"bytes,5,opt,name=dut_id,json=dutId,proto3" json:"dut_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_LoadRequest proto.InternalMessageInfo

func (m *LoadRequest) GetConfig() *Config {
	if m != nil {
		return m.Config
	}
	return nil
}

// Deprecated: Do not use.
func (m *LoadRequest) GetResultsDir() string {
	if m != nil {
		return m.ResultsDir
	}
	return ""
}

func (m *LoadRequest) GetDutName() string {
	if m != nil {
		return m.DutName
	}
	return ""
}

func (m *LoadRequest) GetRunId() string {
	if m != nil {
		return m.RunId
	}
	return ""
}

func (m *LoadRequest) GetDutId() string {
	if m != nil {
		return m.DutId
	}
	return ""
}

// LoadResponse defines the output of `skylab_local_state load`.
type LoadResponse struct {
	// What is currently installed on the DUT, e.g.
	// "cros-version": "reef-release/R77-12345.0.0".
	ProvisionableLabels map[string]string `protobuf:"bytes,1,rep,name=provisionable_labels,json=provisionableLabels,proto3" json:"provisionable_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The path to the newly created directory containing the host info file.
	ResultsDir string `protobuf:"bytes,2,opt,name=results_dir,json=resultsDir,proto3" json:"results_dir,omitempty"`
	// Paths to future results archives.
	// These paths depend on the path of the local results directory, so they
	// become well-defined the moment the local directory is created.
	// `skylab_local_state load` does not perform the offload to the locations,
	// the offload happens asynchronously after the task finishes.
	AsyncResults         *skylab_test_runner.AsyncResults `protobuf:"bytes,3,opt,name=async_results,json=asyncResults,proto3" json:"async_results,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
	XXX_unrecognized     []byte                           `json:"-"`
	XXX_sizecache        int32                            `json:"-"`
}

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

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

var xxx_messageInfo_LoadResponse proto.InternalMessageInfo

func (m *LoadResponse) GetProvisionableLabels() map[string]string {
	if m != nil {
		return m.ProvisionableLabels
	}
	return nil
}

func (m *LoadResponse) GetResultsDir() string {
	if m != nil {
		return m.ResultsDir
	}
	return ""
}

func (m *LoadResponse) GetAsyncResults() *skylab_test_runner.AsyncResults {
	if m != nil {
		return m.AsyncResults
	}
	return nil
}

func init() {
	proto.RegisterType((*LoadRequest)(nil), "test_platform.skylab_local_state.LoadRequest")
	proto.RegisterType((*LoadResponse)(nil), "test_platform.skylab_local_state.LoadResponse")
	proto.RegisterMapType((map[string]string)(nil), "test_platform.skylab_local_state.LoadResponse.ProvisionableLabelsEntry")
}

func init() {
	proto.RegisterFile("test_platform/skylab_local_state/load.proto", fileDescriptor_8da18a4489bdf85e)
}

var fileDescriptor_8da18a4489bdf85e = []byte{
	// 396 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0x4d, 0x8b, 0x14, 0x31,
	0x14, 0xa4, 0x67, 0x9c, 0xd1, 0x4d, 0xaf, 0x20, 0x71, 0x85, 0xb8, 0x17, 0x87, 0xf5, 0x32, 0x20,
	0x26, 0x30, 0x5e, 0xc4, 0x93, 0xae, 0x5f, 0xac, 0x0c, 0x22, 0xf1, 0xe6, 0x25, 0x64, 0x3a, 0x99,
	0x31, 0x6c, 0x3a, 0xaf, 0xcd, 0xc7, 0x42, 0xfb, 0xdf, 0xbc, 0xfb, 0xb3, 0xa4, 0xd3, 0x2d, 0xf4,
	0xb2, 0xbb, 0xf4, 0xad, 0x5f, 0xa5, 0xaa, 0xba, 0x8a, 0xf7, 0xd0, 0x8b, 0xa8, 0x43, 0x14, 0x8d,
	0x95, 0x71, 0x0f, 0xbe, 0x66, 0xe1, 0xb2, 0xb5, 0x72, 0x27, 0x2c, 0x54, 0xd2, 0x8a, 0x10, 0x65,
	0xd4, 0xcc, 0x82, 0x54, 0xb4, 0xf1, 0x10, 0x01, 0xaf, 0xae, 0x91, 0xe9, 0x4d, 0xf2, 0xe9, 0xcb,
	0x49, 0xbb, 0x0a, 0xea, 0x1a, 0x5c, 0x6f, 0x78, 0x07, 0x3d, 0x83, 0x3e, 0x39, 0xa7, 0x3d, 0xf3,
	0x3a, 0x24, 0x1b, 0x7b, 0xfa, 0xd9, 0x9f, 0x02, 0x95, 0x5b, 0x90, 0x8a, 0xeb, 0x5f, 0x49, 0x87,
	0x88, 0xdf, 0xa2, 0x65, 0x05, 0x6e, 0x6f, 0x0e, 0xa4, 0x58, 0x15, 0xeb, 0x72, 0xb3, 0xa6, 0x53,
	0x01, 0xe9, 0xfb, 0xcc, 0xe7, 0x83, 0x0e, 0x3f, 0x47, 0x65, 0xff, 0x87, 0x20, 0x94, 0xf1, 0x64,
	0xb6, 0x2a, 0xd6, 0x47, 0xe7, 0x33, 0x52, 0x70, 0x34, 0xc0, 0x1f, 0x8c, 0xc7, 0x4f, 0xd1, 0x03,
	0x95, 0xa2, 0x70, 0xb2, 0xd6, 0x64, 0xde, 0x31, 0xf8, 0x7d, 0x95, 0xe2, 0x57, 0x59, 0x6b, 0xfc,
	0x04, 0x2d, 0x7d, 0x72, 0xc2, 0x28, 0x72, 0x2f, 0x3f, 0x2c, 0x7c, 0x72, 0x17, 0xaa, 0x83, 0x3b,
	0x85, 0x51, 0x64, 0xd1, 0xc3, 0x2a, 0xc5, 0x0b, 0x75, 0xf6, 0x77, 0x86, 0x8e, 0xfb, 0xfc, 0xa1,
	0x01, 0x17, 0x34, 0xfe, 0x8d, 0x4e, 0x1a, 0x0f, 0x57, 0x26, 0x18, 0x70, 0x72, 0x67, 0xb5, 0xb0,
	0x72, 0xa7, 0x6d, 0x20, 0xc5, 0x6a, 0xbe, 0x2e, 0x37, 0x9f, 0xa7, 0xeb, 0x8c, 0xdd, 0xe8, 0xb7,
	0xb1, 0xd5, 0x36, 0x3b, 0x7d, 0x74, 0xd1, 0xb7, 0xfc, 0x71, 0x73, 0xf3, 0x05, 0x3f, 0xbb, 0xa5,
	0xfa, 0xb5, 0xda, 0xdf, 0xd1, 0x43, 0x19, 0x5a, 0x57, 0x89, 0x01, 0xcb, 0xdd, 0xcb, 0x0d, 0xbd,
	0x3d, 0xd5, 0x68, 0x69, 0xf4, 0x5d, 0x27, 0xe3, 0xbd, 0x8a, 0x1f, 0xcb, 0xd1, 0x74, 0xfa, 0x09,
	0x91, 0xbb, 0x62, 0xe2, 0x47, 0x68, 0x7e, 0xa9, 0xdb, 0xbc, 0xcb, 0x23, 0xde, 0x7d, 0xe2, 0x13,
	0xb4, 0xb8, 0x92, 0x36, 0xe9, 0x21, 0x5d, 0x3f, 0xbc, 0x99, 0xbd, 0x2e, 0xce, 0xb7, 0x3f, 0xbe,
	0x1c, 0x80, 0x56, 0x3f, 0x3d, 0xd4, 0x26, 0xd5, 0x14, 0xfc, 0x81, 0xfd, 0x1f, 0x20, 0x30, 0xe3,
	0xf6, 0x5e, 0xb2, 0x7c, 0x34, 0xec, 0x00, 0x6c, 0xea, 0x28, 0x77, 0xcb, 0x4c, 0x7d, 0xf5, 0x2f,
	0x00, 0x00, 0xff, 0xff, 0xb0, 0x76, 0x54, 0xbc, 0x0e, 0x03, 0x00, 0x00,
}
