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

package result_flow

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	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

// Values should be consistent with https://aip.dev/216
type PublishResponse_State int32

const (
	// Should not be used.
	PublishResponse_STATE_UNSPECIFIED PublishResponse_State = 0
	// Successfully published the build ID to Pub/Sub.
	PublishResponse_SUCCEEDED PublishResponse_State = 1
	// Failed to publish the build ID.
	PublishResponse_FAILED PublishResponse_State = 2
	// Publish has hit the predefined timeout.
	PublishResponse_TIMED_OUT PublishResponse_State = 3
	// The publish command was aborted externally.
	PublishResponse_ABORTED PublishResponse_State = 4
)

var PublishResponse_State_name = map[int32]string{
	0: "STATE_UNSPECIFIED",
	1: "SUCCEEDED",
	2: "FAILED",
	3: "TIMED_OUT",
	4: "ABORTED",
}

var PublishResponse_State_value = map[string]int32{
	"STATE_UNSPECIFIED": 0,
	"SUCCEEDED":         1,
	"FAILED":            2,
	"TIMED_OUT":         3,
	"ABORTED":           4,
}

func (x PublishResponse_State) String() string {
	return proto.EnumName(PublishResponse_State_name, int32(x))
}

func (PublishResponse_State) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_c45128fac736122f, []int{1, 0}
}

// PublishRequest defines the input of `result_flow publish`.
type PublishRequest struct {
	BuildId       int64 `protobuf:"varint,1,opt,name=build_id,json=buildId,proto3" json:"build_id,omitempty"`
	ParentBuildId int64 `protobuf:"varint,2,opt,name=parent_build_id,json=parentBuildId,proto3" json:"parent_build_id,omitempty"`
	// Hard deadline for execution.
	//
	// Publish command should abort beyond this deadline.
	Deadline             *timestamp.Timestamp `protobuf:"bytes,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_PublishRequest proto.InternalMessageInfo

func (m *PublishRequest) GetBuildId() int64 {
	if m != nil {
		return m.BuildId
	}
	return 0
}

func (m *PublishRequest) GetParentBuildId() int64 {
	if m != nil {
		return m.ParentBuildId
	}
	return 0
}

func (m *PublishRequest) GetDeadline() *timestamp.Timestamp {
	if m != nil {
		return m.Deadline
	}
	return nil
}

// PublishRequest defines the output of `result_flow publish`.
type PublishResponse struct {
	// `result_flow publish` exits with exit code 0 unless there is an
	// infrastructure failure. When the exit code is 0, `state` indicates the
	// best known state of the publish execution (see comments on State enum).
	State                PublishResponse_State `protobuf:"varint,1,opt,name=state,proto3,enum=test_platform.result_flow.PublishResponse_State" json:"state,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

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

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

var xxx_messageInfo_PublishResponse proto.InternalMessageInfo

func (m *PublishResponse) GetState() PublishResponse_State {
	if m != nil {
		return m.State
	}
	return PublishResponse_STATE_UNSPECIFIED
}

func init() {
	proto.RegisterEnum("test_platform.result_flow.PublishResponse_State", PublishResponse_State_name, PublishResponse_State_value)
	proto.RegisterType((*PublishRequest)(nil), "test_platform.result_flow.PublishRequest")
	proto.RegisterType((*PublishResponse)(nil), "test_platform.result_flow.PublishResponse")
}

func init() {
	proto.RegisterFile("test_platform/result_flow/publish.proto", fileDescriptor_c45128fac736122f)
}

var fileDescriptor_c45128fac736122f = []byte{
	// 340 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0xcb, 0x6e, 0xe2, 0x30,
	0x14, 0x86, 0x27, 0x30, 0x5c, 0xc6, 0x08, 0xc8, 0x58, 0x1a, 0x09, 0xd8, 0x0c, 0x62, 0xd1, 0xb2,
	0xb2, 0x2b, 0x2a, 0x75, 0x0f, 0x89, 0x91, 0x22, 0xb5, 0x05, 0xe5, 0xb2, 0xe9, 0x26, 0x4a, 0x1a,
	0x27, 0x58, 0x72, 0xe2, 0xd4, 0x76, 0xd4, 0x87, 0xe8, 0xcb, 0xf4, 0x11, 0x2b, 0x92, 0x82, 0xda,
	0x4a, 0x2c, 0x7f, 0xfb, 0xfb, 0xad, 0xcf, 0xe7, 0x80, 0x6b, 0x4d, 0x95, 0x0e, 0x4b, 0x1e, 0xe9,
	0x54, 0xc8, 0x1c, 0x4b, 0xaa, 0x2a, 0xae, 0xc3, 0x94, 0x8b, 0x57, 0x5c, 0x56, 0x31, 0x67, 0xea,
	0x80, 0x4a, 0x29, 0xb4, 0x80, 0xd3, 0x6f, 0x20, 0xfa, 0x02, 0xce, 0xfe, 0x67, 0x42, 0x64, 0x9c,
	0xe2, 0x1a, 0x8c, 0xab, 0x14, 0x6b, 0x96, 0x53, 0xa5, 0xa3, 0xbc, 0x6c, 0xba, 0x8b, 0x37, 0x03,
	0x8c, 0xf6, 0xcd, 0x6b, 0x2e, 0x7d, 0xa9, 0xa8, 0xd2, 0x70, 0x0a, 0xfa, 0x71, 0xc5, 0x78, 0x12,
	0xb2, 0x64, 0x62, 0xcc, 0x8d, 0x65, 0xdb, 0xed, 0xd5, 0xd9, 0x49, 0xe0, 0x15, 0x18, 0x97, 0x91,
	0xa4, 0x85, 0x0e, 0xcf, 0x44, 0xab, 0x26, 0x86, 0xcd, 0xf1, 0xe6, 0x93, 0xbb, 0x03, 0xfd, 0x84,
	0x46, 0x09, 0x67, 0x05, 0x9d, 0xb4, 0xe7, 0xc6, 0x72, 0xb0, 0x9a, 0xa1, 0xc6, 0x04, 0x9d, 0x4c,
	0x90, 0x7f, 0x32, 0x71, 0xcf, 0xec, 0xe2, 0xdd, 0x00, 0xe3, 0xb3, 0x8d, 0x2a, 0x45, 0xa1, 0x28,
	0xdc, 0x82, 0x8e, 0xd2, 0x91, 0xa6, 0xb5, 0xcb, 0x68, 0x75, 0x83, 0x2e, 0xfe, 0x16, 0xfd, 0xa8,
	0x22, 0xef, 0xd8, 0x73, 0x9b, 0xfa, 0x22, 0x00, 0x9d, 0x3a, 0xc3, 0x7f, 0xe0, 0xaf, 0xe7, 0xaf,
	0x7d, 0x12, 0x06, 0x8f, 0xde, 0x9e, 0x58, 0xce, 0xd6, 0x21, 0xb6, 0xf9, 0x0b, 0x0e, 0xc1, 0x1f,
	0x2f, 0xb0, 0x2c, 0x42, 0x6c, 0x62, 0x9b, 0x06, 0x04, 0xa0, 0xbb, 0x5d, 0x3b, 0xf7, 0xc4, 0x36,
	0x5b, 0xc7, 0x2b, 0xdf, 0x79, 0x20, 0x76, 0xb8, 0x0b, 0x7c, 0xb3, 0x0d, 0x07, 0xa0, 0xb7, 0xde,
	0xec, 0x5c, 0x9f, 0xd8, 0xe6, 0xef, 0x0d, 0x79, 0xb2, 0x32, 0x81, 0x9e, 0x0f, 0x52, 0xe4, 0xac,
	0xca, 0x91, 0x90, 0x19, 0x3e, 0x05, 0xa1, 0x30, 0x2b, 0x52, 0x19, 0x35, 0xd3, 0xc7, 0x99, 0xc0,
	0x17, 0x37, 0x1a, 0x77, 0x6b, 0xe6, 0xf6, 0x23, 0x00, 0x00, 0xff, 0xff, 0xf4, 0x90, 0xa2, 0xd2,
	0xf5, 0x01, 0x00, 0x00,
}
