// Code generated by protoc-gen-go. DO NOT EDIT.
// source: chromiumos/sign_image.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

type SignerType int32

const (
	SignerType_SIGNER_UNSPECIFIED SignerType = 0
	SignerType_SIGNER_PRODUCTION  SignerType = 1
	SignerType_SIGNER_STAGING     SignerType = 2
	SignerType_SIGNER_DEV         SignerType = 3
)

var SignerType_name = map[int32]string{
	0: "SIGNER_UNSPECIFIED",
	1: "SIGNER_PRODUCTION",
	2: "SIGNER_STAGING",
	3: "SIGNER_DEV",
}

var SignerType_value = map[string]int32{
	"SIGNER_UNSPECIFIED": 0,
	"SIGNER_PRODUCTION":  1,
	"SIGNER_STAGING":     2,
	"SIGNER_DEV":         3,
}

func (x SignerType) String() string {
	return proto.EnumName(SignerType_name, int32(x))
}

func (SignerType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_415e76f10086cda5, []int{0}
}

// The target for the image.
// These names are assigned to target in the signing instructions file.
type Cr50Instructions_Target int32

const (
	Cr50Instructions_UNSPECIFIED       Cr50Instructions_Target = 0
	Cr50Instructions_PREPVT            Cr50Instructions_Target = 1
	Cr50Instructions_RELEASE_CANDIDATE Cr50Instructions_Target = 2
	Cr50Instructions_NODE_LOCKED       Cr50Instructions_Target = 3
	Cr50Instructions_GENERAL_RELEASE   Cr50Instructions_Target = 4
)

var Cr50Instructions_Target_name = map[int32]string{
	0: "UNSPECIFIED",
	1: "PREPVT",
	2: "RELEASE_CANDIDATE",
	3: "NODE_LOCKED",
	4: "GENERAL_RELEASE",
}

var Cr50Instructions_Target_value = map[string]int32{
	"UNSPECIFIED":       0,
	"PREPVT":            1,
	"RELEASE_CANDIDATE": 2,
	"NODE_LOCKED":       3,
	"GENERAL_RELEASE":   4,
}

func (x Cr50Instructions_Target) String() string {
	return proto.EnumName(Cr50Instructions_Target_name, int32(x))
}

func (Cr50Instructions_Target) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_415e76f10086cda5, []int{0, 0}
}

// The target for the image.
// These names are assigned to target in the signing instructions file.
type GscInstructions_Target int32

const (
	GscInstructions_UNSPECIFIED       GscInstructions_Target = 0
	GscInstructions_PREPVT            GscInstructions_Target = 1
	GscInstructions_RELEASE_CANDIDATE GscInstructions_Target = 2
	GscInstructions_NODE_LOCKED       GscInstructions_Target = 3
	GscInstructions_GENERAL_RELEASE   GscInstructions_Target = 4
)

var GscInstructions_Target_name = map[int32]string{
	0: "UNSPECIFIED",
	1: "PREPVT",
	2: "RELEASE_CANDIDATE",
	3: "NODE_LOCKED",
	4: "GENERAL_RELEASE",
}

var GscInstructions_Target_value = map[string]int32{
	"UNSPECIFIED":       0,
	"PREPVT":            1,
	"RELEASE_CANDIDATE": 2,
	"NODE_LOCKED":       3,
	"GENERAL_RELEASE":   4,
}

func (x GscInstructions_Target) String() string {
	return proto.EnumName(GscInstructions_Target_name, int32(x))
}

func (GscInstructions_Target) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_415e76f10086cda5, []int{1, 0}
}

// TODO(b:173049030) Obsolete, will be removed when GSC signing is extended to
// Dauntless.
type Cr50Instructions struct {
	Target Cr50Instructions_Target `protobuf:"varint,1,opt,name=target,proto3,enum=chromiumos.Cr50Instructions_Target" json:"target,omitempty"`
	// Device ID for NODE_LOCKED.  (Format: '%08x-%08x'.)
	DeviceId             string   `protobuf:"bytes,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_Cr50Instructions proto.InternalMessageInfo

func (m *Cr50Instructions) GetTarget() Cr50Instructions_Target {
	if m != nil {
		return m.Target
	}
	return Cr50Instructions_UNSPECIFIED
}

func (m *Cr50Instructions) GetDeviceId() string {
	if m != nil {
		return m.DeviceId
	}
	return ""
}

type GscInstructions struct {
	Target GscInstructions_Target `protobuf:"varint,1,opt,name=target,proto3,enum=chromiumos.GscInstructions_Target" json:"target,omitempty"`
	// Device ID for NODE_LOCKED.  (Format: '%08x-%08x'.)
	DeviceId             string   `protobuf:"bytes,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_GscInstructions proto.InternalMessageInfo

func (m *GscInstructions) GetTarget() GscInstructions_Target {
	if m != nil {
		return m.Target
	}
	return GscInstructions_UNSPECIFIED
}

func (m *GscInstructions) GetDeviceId() string {
	if m != nil {
		return m.DeviceId
	}
	return ""
}

func init() {
	proto.RegisterEnum("chromiumos.SignerType", SignerType_name, SignerType_value)
	proto.RegisterEnum("chromiumos.Cr50Instructions_Target", Cr50Instructions_Target_name, Cr50Instructions_Target_value)
	proto.RegisterEnum("chromiumos.GscInstructions_Target", GscInstructions_Target_name, GscInstructions_Target_value)
	proto.RegisterType((*Cr50Instructions)(nil), "chromiumos.Cr50Instructions")
	proto.RegisterType((*GscInstructions)(nil), "chromiumos.GscInstructions")
}

func init() { proto.RegisterFile("chromiumos/sign_image.proto", fileDescriptor_415e76f10086cda5) }

var fileDescriptor_415e76f10086cda5 = []byte{
	// 335 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x92, 0xcd, 0x6a, 0xea, 0x40,
	0x18, 0x86, 0x4f, 0xf4, 0x10, 0x8e, 0xdf, 0x01, 0x1d, 0xa7, 0x58, 0x04, 0x37, 0x92, 0x6e, 0xa4,
	0x8b, 0xa4, 0xf4, 0x6f, 0xd1, 0xae, 0xd2, 0x64, 0x1a, 0x86, 0x4a, 0x12, 0x26, 0xd1, 0x45, 0x37,
	0x83, 0xc6, 0x74, 0x3a, 0x0b, 0x33, 0x32, 0x89, 0x85, 0xde, 0x64, 0xe9, 0x25, 0x95, 0x6a, 0xa8,
	0x3f, 0x57, 0xd0, 0xed, 0xf3, 0x3d, 0x2f, 0xc3, 0x3b, 0xbc, 0x30, 0xc8, 0x5e, 0xb5, 0x5a, 0xca,
	0xf5, 0x52, 0x95, 0x4e, 0x29, 0x45, 0xc1, 0xe5, 0x72, 0x26, 0x72, 0x7b, 0xa5, 0x55, 0xa5, 0x30,
	0xec, 0x8e, 0xd6, 0xa7, 0x01, 0xc8, 0xd3, 0x37, 0x17, 0xb4, 0x28, 0x2b, 0xbd, 0xce, 0x2a, 0xa9,
	0x8a, 0x12, 0xdf, 0x83, 0x59, 0xcd, 0xb4, 0xc8, 0xab, 0xbe, 0x31, 0x34, 0x46, 0xed, 0xcb, 0x33,
	0x7b, 0x97, 0xb0, 0x8f, 0x6d, 0x3b, 0xdd, 0xa8, 0xac, 0x8e, 0xe0, 0x01, 0xb4, 0x16, 0xf9, 0x9b,
	0xcc, 0x72, 0x2e, 0x17, 0xfd, 0xc6, 0xd0, 0x18, 0xb5, 0xd8, 0xbf, 0x2d, 0xa0, 0x0b, 0x6b, 0x0e,
	0xe6, 0x56, 0xc7, 0x1d, 0xf8, 0x3f, 0x09, 0x93, 0x98, 0x78, 0xf4, 0x91, 0x12, 0x1f, 0xfd, 0xc1,
	0x00, 0x66, 0xcc, 0x48, 0x3c, 0x4d, 0x91, 0x81, 0x7b, 0xd0, 0x65, 0x64, 0x4c, 0xdc, 0x84, 0x70,
	0xcf, 0x0d, 0x7d, 0xea, 0xbb, 0x29, 0x41, 0x8d, 0xef, 0x4c, 0x18, 0xf9, 0x84, 0x8f, 0x23, 0xef,
	0x89, 0xf8, 0xa8, 0x89, 0x4f, 0xa0, 0x13, 0x90, 0x90, 0x30, 0x77, 0xcc, 0x6b, 0x1f, 0xfd, 0xb5,
	0x3e, 0x0c, 0xe8, 0x04, 0x65, 0x76, 0xd0, 0xe8, 0xee, 0xa8, 0x91, 0xb5, 0xdf, 0xe8, 0x48, 0xfe,
	0x6d, 0x85, 0xce, 0x39, 0x40, 0x22, 0x45, 0x91, 0xeb, 0xf4, 0x7d, 0x95, 0xe3, 0x53, 0xc0, 0x09,
	0x0d, 0x42, 0xc2, 0xf8, 0xe1, 0x73, 0x3d, 0xe8, 0xd6, 0x3c, 0x66, 0x91, 0x3f, 0xf1, 0x52, 0x1a,
	0x85, 0xc8, 0xc0, 0x18, 0xda, 0x35, 0x4e, 0x52, 0x37, 0xa0, 0x61, 0x80, 0x1a, 0xb8, 0x0d, 0x50,
	0x33, 0x9f, 0x4c, 0x51, 0xf3, 0xe1, 0xf6, 0xf9, 0x5a, 0xa8, 0x9f, 0x1f, 0xb1, 0x95, 0x16, 0xce,
	0xde, 0x7e, 0x64, 0xf1, 0xa2, 0x67, 0xce, 0x66, 0x3a, 0x8e, 0x50, 0x7b, 0x97, 0xb9, 0xb9, 0x81,
	0x57, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x01, 0x5d, 0x5b, 0xa9, 0x6e, 0x02, 0x00, 0x00,
}
