// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: api/services/control.proto

package isula_build_v1

import (
	context "context"
	fmt "fmt"
	proto "github.com/gogo/protobuf/proto"
	types "github.com/gogo/protobuf/types"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	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.GoGoProtoPackageIsVersion3 // please upgrade the proto package

type HealthCheckResponse_ServingStatus int32

const (
	HealthCheckResponse_UNKNOWN     HealthCheckResponse_ServingStatus = 0
	HealthCheckResponse_SERVING     HealthCheckResponse_ServingStatus = 1
	HealthCheckResponse_NOT_SERVING HealthCheckResponse_ServingStatus = 2
)

var HealthCheckResponse_ServingStatus_name = map[int32]string{
	0: "UNKNOWN",
	1: "SERVING",
	2: "NOT_SERVING",
}

var HealthCheckResponse_ServingStatus_value = map[string]int32{
	"UNKNOWN":     0,
	"SERVING":     1,
	"NOT_SERVING": 2,
}

func (x HealthCheckResponse_ServingStatus) String() string {
	return proto.EnumName(HealthCheckResponse_ServingStatus_name, int32(x))
}

func (HealthCheckResponse_ServingStatus) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{13, 0}
}

type BuildRequest struct {
	// buildType is the type of this build action
	BuildType string `protobuf:"bytes,1,opt,name=buildType,proto3" json:"buildType,omitempty"`
	// buildID is an unique id for this building process
	BuildID string `protobuf:"bytes,2,opt,name=buildID,proto3" json:"buildID,omitempty"`
	// contextDir is the working directory of building context
	ContextDir string `protobuf:"bytes,3,opt,name=contextDir,proto3" json:"contextDir,omitempty"`
	// fileContent is the content of Dockerfile
	FileContent string `protobuf:"bytes,4,opt,name=fileContent,proto3" json:"fileContent,omitempty"`
	// output is the way of exporting built image
	Output string `protobuf:"bytes,5,opt,name=output,proto3" json:"output,omitempty"`
	// buildArgs are args for this building
	BuildArgs []string `protobuf:"bytes,6,rep,name=buildArgs,proto3" json:"buildArgs,omitempty"`
	// proxy marks for whether inherit proxy environments from host
	Proxy bool `protobuf:"varint,7,opt,name=proxy,proto3" json:"proxy,omitempty"`
	// iidfile is the file client writes image ID to
	Iidfile string `protobuf:"bytes,8,opt,name=iidfile,proto3" json:"iidfile,omitempty"`
	// buildStatic is used to hold the options for static build
	BuildStatic *BuildStatic `protobuf:"bytes,9,opt,name=buildStatic,proto3" json:"buildStatic,omitempty"`
	// encryptKey is key to encrypt items in buildArgs
	EncryptKey string `protobuf:"bytes,10,opt,name=encryptKey,proto3" json:"encryptKey,omitempty"`
	// additionalTag is the tag applied to the built image
	AdditionalTag string `protobuf:"bytes,11,opt,name=additionalTag,proto3" json:"additionalTag,omitempty"`
	// capAddList indicates Linux capabilities for RUN command
	CapAddList []string `protobuf:"bytes,12,rep,name=capAddList,proto3" json:"capAddList,omitempty"`
	// entityID is an id to descript a physic building
	EntityID             string   `protobuf:"bytes,13,opt,name=entityID,proto3" json:"entityID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BuildRequest) Reset()         { *m = BuildRequest{} }
func (m *BuildRequest) String() string { return proto.CompactTextString(m) }
func (*BuildRequest) ProtoMessage()    {}
func (*BuildRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{0}
}
func (m *BuildRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BuildRequest.Unmarshal(m, b)
}
func (m *BuildRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BuildRequest.Marshal(b, m, deterministic)
}
func (m *BuildRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BuildRequest.Merge(m, src)
}
func (m *BuildRequest) XXX_Size() int {
	return xxx_messageInfo_BuildRequest.Size(m)
}
func (m *BuildRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_BuildRequest.DiscardUnknown(m)
}

var xxx_messageInfo_BuildRequest proto.InternalMessageInfo

func (m *BuildRequest) GetBuildType() string {
	if m != nil {
		return m.BuildType
	}
	return ""
}

func (m *BuildRequest) GetBuildID() string {
	if m != nil {
		return m.BuildID
	}
	return ""
}

func (m *BuildRequest) GetContextDir() string {
	if m != nil {
		return m.ContextDir
	}
	return ""
}

func (m *BuildRequest) GetFileContent() string {
	if m != nil {
		return m.FileContent
	}
	return ""
}

func (m *BuildRequest) GetOutput() string {
	if m != nil {
		return m.Output
	}
	return ""
}

func (m *BuildRequest) GetBuildArgs() []string {
	if m != nil {
		return m.BuildArgs
	}
	return nil
}

func (m *BuildRequest) GetProxy() bool {
	if m != nil {
		return m.Proxy
	}
	return false
}

func (m *BuildRequest) GetIidfile() string {
	if m != nil {
		return m.Iidfile
	}
	return ""
}

func (m *BuildRequest) GetBuildStatic() *BuildStatic {
	if m != nil {
		return m.BuildStatic
	}
	return nil
}

func (m *BuildRequest) GetEncryptKey() string {
	if m != nil {
		return m.EncryptKey
	}
	return ""
}

func (m *BuildRequest) GetAdditionalTag() string {
	if m != nil {
		return m.AdditionalTag
	}
	return ""
}

func (m *BuildRequest) GetCapAddList() []string {
	if m != nil {
		return m.CapAddList
	}
	return nil
}

func (m *BuildRequest) GetEntityID() string {
	if m != nil {
		return m.EntityID
	}
	return ""
}

type ImportRequest struct {
	// reference is reference of the import image
	Reference string `protobuf:"bytes,1,opt,name=reference,proto3" json:"reference,omitempty"`
	// data is the tarball of the import image
	Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ImportRequest) Reset()         { *m = ImportRequest{} }
func (m *ImportRequest) String() string { return proto.CompactTextString(m) }
func (*ImportRequest) ProtoMessage()    {}
func (*ImportRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{1}
}
func (m *ImportRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ImportRequest.Unmarshal(m, b)
}
func (m *ImportRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ImportRequest.Marshal(b, m, deterministic)
}
func (m *ImportRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ImportRequest.Merge(m, src)
}
func (m *ImportRequest) XXX_Size() int {
	return xxx_messageInfo_ImportRequest.Size(m)
}
func (m *ImportRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ImportRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ImportRequest proto.InternalMessageInfo

func (m *ImportRequest) GetReference() string {
	if m != nil {
		return m.Reference
	}
	return ""
}

func (m *ImportRequest) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

type ImportResponse struct {
	// log is log send to cli
	Log                  string   `protobuf:"bytes,1,opt,name=log,proto3" json:"log,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ImportResponse) Reset()         { *m = ImportResponse{} }
func (m *ImportResponse) String() string { return proto.CompactTextString(m) }
func (*ImportResponse) ProtoMessage()    {}
func (*ImportResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{2}
}
func (m *ImportResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ImportResponse.Unmarshal(m, b)
}
func (m *ImportResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ImportResponse.Marshal(b, m, deterministic)
}
func (m *ImportResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ImportResponse.Merge(m, src)
}
func (m *ImportResponse) XXX_Size() int {
	return xxx_messageInfo_ImportResponse.Size(m)
}
func (m *ImportResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ImportResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ImportResponse proto.InternalMessageInfo

func (m *ImportResponse) GetLog() string {
	if m != nil {
		return m.Log
	}
	return ""
}

type BuildStatic struct {
	// buildTime is a fixed time for binary equivalence build
	BuildTime            *types.Timestamp `protobuf:"bytes,1,opt,name=buildTime,proto3" json:"buildTime,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *BuildStatic) Reset()         { *m = BuildStatic{} }
func (m *BuildStatic) String() string { return proto.CompactTextString(m) }
func (*BuildStatic) ProtoMessage()    {}
func (*BuildStatic) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{3}
}
func (m *BuildStatic) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BuildStatic.Unmarshal(m, b)
}
func (m *BuildStatic) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BuildStatic.Marshal(b, m, deterministic)
}
func (m *BuildStatic) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BuildStatic.Merge(m, src)
}
func (m *BuildStatic) XXX_Size() int {
	return xxx_messageInfo_BuildStatic.Size(m)
}
func (m *BuildStatic) XXX_DiscardUnknown() {
	xxx_messageInfo_BuildStatic.DiscardUnknown(m)
}

var xxx_messageInfo_BuildStatic proto.InternalMessageInfo

func (m *BuildStatic) GetBuildTime() *types.Timestamp {
	if m != nil {
		return m.BuildTime
	}
	return nil
}

type BuildResponse struct {
	// imageID is the ID of built image
	ImageID string `protobuf:"bytes,1,opt,name=imageID,proto3" json:"imageID,omitempty"`
	// data pipes the output stream back to client
	Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BuildResponse) Reset()         { *m = BuildResponse{} }
func (m *BuildResponse) String() string { return proto.CompactTextString(m) }
func (*BuildResponse) ProtoMessage()    {}
func (*BuildResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{4}
}
func (m *BuildResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BuildResponse.Unmarshal(m, b)
}
func (m *BuildResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BuildResponse.Marshal(b, m, deterministic)
}
func (m *BuildResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BuildResponse.Merge(m, src)
}
func (m *BuildResponse) XXX_Size() int {
	return xxx_messageInfo_BuildResponse.Size(m)
}
func (m *BuildResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_BuildResponse.DiscardUnknown(m)
}

var xxx_messageInfo_BuildResponse proto.InternalMessageInfo

func (m *BuildResponse) GetImageID() string {
	if m != nil {
		return m.ImageID
	}
	return ""
}

func (m *BuildResponse) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

type StatusRequest struct {
	// buildID is an unique id for this building process, same with BuildRequest
	BuildID              string   `protobuf:"bytes,1,opt,name=buildID,proto3" json:"buildID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StatusRequest) Reset()         { *m = StatusRequest{} }
func (m *StatusRequest) String() string { return proto.CompactTextString(m) }
func (*StatusRequest) ProtoMessage()    {}
func (*StatusRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{5}
}
func (m *StatusRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatusRequest.Unmarshal(m, b)
}
func (m *StatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatusRequest.Marshal(b, m, deterministic)
}
func (m *StatusRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatusRequest.Merge(m, src)
}
func (m *StatusRequest) XXX_Size() int {
	return xxx_messageInfo_StatusRequest.Size(m)
}
func (m *StatusRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_StatusRequest.DiscardUnknown(m)
}

var xxx_messageInfo_StatusRequest proto.InternalMessageInfo

func (m *StatusRequest) GetBuildID() string {
	if m != nil {
		return m.BuildID
	}
	return ""
}

type StatusResponse struct {
	// content pipes the image building process log back to client
	Content              string   `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StatusResponse) Reset()         { *m = StatusResponse{} }
func (m *StatusResponse) String() string { return proto.CompactTextString(m) }
func (*StatusResponse) ProtoMessage()    {}
func (*StatusResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{6}
}
func (m *StatusResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatusResponse.Unmarshal(m, b)
}
func (m *StatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatusResponse.Marshal(b, m, deterministic)
}
func (m *StatusResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatusResponse.Merge(m, src)
}
func (m *StatusResponse) XXX_Size() int {
	return xxx_messageInfo_StatusResponse.Size(m)
}
func (m *StatusResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_StatusResponse.DiscardUnknown(m)
}

var xxx_messageInfo_StatusResponse proto.InternalMessageInfo

func (m *StatusResponse) GetContent() string {
	if m != nil {
		return m.Content
	}
	return ""
}

type ListRequest struct {
	// imageName lists specific images with imageName
	ImageName            string   `protobuf:"bytes,1,opt,name=imageName,proto3" json:"imageName,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListRequest) Reset()         { *m = ListRequest{} }
func (m *ListRequest) String() string { return proto.CompactTextString(m) }
func (*ListRequest) ProtoMessage()    {}
func (*ListRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{7}
}
func (m *ListRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListRequest.Unmarshal(m, b)
}
func (m *ListRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListRequest.Marshal(b, m, deterministic)
}
func (m *ListRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListRequest.Merge(m, src)
}
func (m *ListRequest) XXX_Size() int {
	return xxx_messageInfo_ListRequest.Size(m)
}
func (m *ListRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListRequest proto.InternalMessageInfo

func (m *ListRequest) GetImageName() string {
	if m != nil {
		return m.ImageName
	}
	return ""
}

type TagRequest struct {
	// image refers to the image to be tagged
	Image string `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
	// tag is the tag added to image
	Tag                  string   `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TagRequest) Reset()         { *m = TagRequest{} }
func (m *TagRequest) String() string { return proto.CompactTextString(m) }
func (*TagRequest) ProtoMessage()    {}
func (*TagRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{8}
}
func (m *TagRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TagRequest.Unmarshal(m, b)
}
func (m *TagRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TagRequest.Marshal(b, m, deterministic)
}
func (m *TagRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TagRequest.Merge(m, src)
}
func (m *TagRequest) XXX_Size() int {
	return xxx_messageInfo_TagRequest.Size(m)
}
func (m *TagRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_TagRequest.DiscardUnknown(m)
}

var xxx_messageInfo_TagRequest proto.InternalMessageInfo

func (m *TagRequest) GetImage() string {
	if m != nil {
		return m.Image
	}
	return ""
}

func (m *TagRequest) GetTag() string {
	if m != nil {
		return m.Tag
	}
	return ""
}

type ListResponse struct {
	// ImageInfo carries the basic info of an image
	Images               []*ListResponse_ImageInfo `protobuf:"bytes,1,rep,name=images,proto3" json:"images,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *ListResponse) Reset()         { *m = ListResponse{} }
func (m *ListResponse) String() string { return proto.CompactTextString(m) }
func (*ListResponse) ProtoMessage()    {}
func (*ListResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{9}
}
func (m *ListResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListResponse.Unmarshal(m, b)
}
func (m *ListResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListResponse.Marshal(b, m, deterministic)
}
func (m *ListResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListResponse.Merge(m, src)
}
func (m *ListResponse) XXX_Size() int {
	return xxx_messageInfo_ListResponse.Size(m)
}
func (m *ListResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListResponse proto.InternalMessageInfo

func (m *ListResponse) GetImages() []*ListResponse_ImageInfo {
	if m != nil {
		return m.Images
	}
	return nil
}

type ListResponse_ImageInfo struct {
	Repository           string   `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
	Tag                  string   `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"`
	Id                   string   `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"`
	Created              string   `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"`
	Size_                string   `protobuf:"bytes,5,opt,name=size,proto3" json:"size,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListResponse_ImageInfo) Reset()         { *m = ListResponse_ImageInfo{} }
func (m *ListResponse_ImageInfo) String() string { return proto.CompactTextString(m) }
func (*ListResponse_ImageInfo) ProtoMessage()    {}
func (*ListResponse_ImageInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{9, 0}
}
func (m *ListResponse_ImageInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListResponse_ImageInfo.Unmarshal(m, b)
}
func (m *ListResponse_ImageInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListResponse_ImageInfo.Marshal(b, m, deterministic)
}
func (m *ListResponse_ImageInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListResponse_ImageInfo.Merge(m, src)
}
func (m *ListResponse_ImageInfo) XXX_Size() int {
	return xxx_messageInfo_ListResponse_ImageInfo.Size(m)
}
func (m *ListResponse_ImageInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_ListResponse_ImageInfo.DiscardUnknown(m)
}

var xxx_messageInfo_ListResponse_ImageInfo proto.InternalMessageInfo

func (m *ListResponse_ImageInfo) GetRepository() string {
	if m != nil {
		return m.Repository
	}
	return ""
}

func (m *ListResponse_ImageInfo) GetTag() string {
	if m != nil {
		return m.Tag
	}
	return ""
}

func (m *ListResponse_ImageInfo) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *ListResponse_ImageInfo) GetCreated() string {
	if m != nil {
		return m.Created
	}
	return ""
}

func (m *ListResponse_ImageInfo) GetSize_() string {
	if m != nil {
		return m.Size_
	}
	return ""
}

type VersionResponse struct {
	// version is isula-builder version
	Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	// goVersion is the golang version userd for compiling isula-builder
	GoVersion string `protobuf:"bytes,2,opt,name=goVersion,proto3" json:"goVersion,omitempty"`
	// gitCommit is the git commit ID for the compiled isula-builder
	GitCommit string `protobuf:"bytes,3,opt,name=gitCommit,proto3" json:"gitCommit,omitempty"`
	// buildTime is the time when compiling isula-builder
	BuildTime string `protobuf:"bytes,4,opt,name=buildTime,proto3" json:"buildTime,omitempty"`
	// osArch is the arch the isula-builder built on
	OsArch               string   `protobuf:"bytes,5,opt,name=osArch,proto3" json:"osArch,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *VersionResponse) Reset()         { *m = VersionResponse{} }
func (m *VersionResponse) String() string { return proto.CompactTextString(m) }
func (*VersionResponse) ProtoMessage()    {}
func (*VersionResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{10}
}
func (m *VersionResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VersionResponse.Unmarshal(m, b)
}
func (m *VersionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VersionResponse.Marshal(b, m, deterministic)
}
func (m *VersionResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VersionResponse.Merge(m, src)
}
func (m *VersionResponse) XXX_Size() int {
	return xxx_messageInfo_VersionResponse.Size(m)
}
func (m *VersionResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_VersionResponse.DiscardUnknown(m)
}

var xxx_messageInfo_VersionResponse proto.InternalMessageInfo

func (m *VersionResponse) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

func (m *VersionResponse) GetGoVersion() string {
	if m != nil {
		return m.GoVersion
	}
	return ""
}

func (m *VersionResponse) GetGitCommit() string {
	if m != nil {
		return m.GitCommit
	}
	return ""
}

func (m *VersionResponse) GetBuildTime() string {
	if m != nil {
		return m.BuildTime
	}
	return ""
}

func (m *VersionResponse) GetOsArch() string {
	if m != nil {
		return m.OsArch
	}
	return ""
}

type RemoveRequest struct {
	// imageID is the images to be deleted
	ImageID []string `protobuf:"bytes,1,rep,name=imageID,proto3" json:"imageID,omitempty"`
	// all tells isula-builder to delete all images
	All bool `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
	// prune tells isula-builder to delete all untagge images
	Prune                bool     `protobuf:"varint,3,opt,name=prune,proto3" json:"prune,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RemoveRequest) Reset()         { *m = RemoveRequest{} }
func (m *RemoveRequest) String() string { return proto.CompactTextString(m) }
func (*RemoveRequest) ProtoMessage()    {}
func (*RemoveRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{11}
}
func (m *RemoveRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RemoveRequest.Unmarshal(m, b)
}
func (m *RemoveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RemoveRequest.Marshal(b, m, deterministic)
}
func (m *RemoveRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RemoveRequest.Merge(m, src)
}
func (m *RemoveRequest) XXX_Size() int {
	return xxx_messageInfo_RemoveRequest.Size(m)
}
func (m *RemoveRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_RemoveRequest.DiscardUnknown(m)
}

var xxx_messageInfo_RemoveRequest proto.InternalMessageInfo

func (m *RemoveRequest) GetImageID() []string {
	if m != nil {
		return m.ImageID
	}
	return nil
}

func (m *RemoveRequest) GetAll() bool {
	if m != nil {
		return m.All
	}
	return false
}

func (m *RemoveRequest) GetPrune() bool {
	if m != nil {
		return m.Prune
	}
	return false
}

type RemoveResponse struct {
	// layerMessage is response message indicate the images deleted successfully or error occured
	LayerMessage         string   `protobuf:"bytes,1,opt,name=layerMessage,proto3" json:"layerMessage,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RemoveResponse) Reset()         { *m = RemoveResponse{} }
func (m *RemoveResponse) String() string { return proto.CompactTextString(m) }
func (*RemoveResponse) ProtoMessage()    {}
func (*RemoveResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{12}
}
func (m *RemoveResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RemoveResponse.Unmarshal(m, b)
}
func (m *RemoveResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RemoveResponse.Marshal(b, m, deterministic)
}
func (m *RemoveResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RemoveResponse.Merge(m, src)
}
func (m *RemoveResponse) XXX_Size() int {
	return xxx_messageInfo_RemoveResponse.Size(m)
}
func (m *RemoveResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_RemoveResponse.DiscardUnknown(m)
}

var xxx_messageInfo_RemoveResponse proto.InternalMessageInfo

func (m *RemoveResponse) GetLayerMessage() string {
	if m != nil {
		return m.LayerMessage
	}
	return ""
}

type HealthCheckResponse struct {
	// status is the health status of isula-builder
	Status               HealthCheckResponse_ServingStatus `protobuf:"varint,1,opt,name=status,proto3,enum=isula.build.v1.HealthCheckResponse_ServingStatus" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
	XXX_unrecognized     []byte                            `json:"-"`
	XXX_sizecache        int32                             `json:"-"`
}

func (m *HealthCheckResponse) Reset()         { *m = HealthCheckResponse{} }
func (m *HealthCheckResponse) String() string { return proto.CompactTextString(m) }
func (*HealthCheckResponse) ProtoMessage()    {}
func (*HealthCheckResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{13}
}
func (m *HealthCheckResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HealthCheckResponse.Unmarshal(m, b)
}
func (m *HealthCheckResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HealthCheckResponse.Marshal(b, m, deterministic)
}
func (m *HealthCheckResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HealthCheckResponse.Merge(m, src)
}
func (m *HealthCheckResponse) XXX_Size() int {
	return xxx_messageInfo_HealthCheckResponse.Size(m)
}
func (m *HealthCheckResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_HealthCheckResponse.DiscardUnknown(m)
}

var xxx_messageInfo_HealthCheckResponse proto.InternalMessageInfo

func (m *HealthCheckResponse) GetStatus() HealthCheckResponse_ServingStatus {
	if m != nil {
		return m.Status
	}
	return HealthCheckResponse_UNKNOWN
}

type LoginRequest struct {
	// server is registry address will login
	Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
	// username is username to login
	Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	// password is password to login
	Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
	// key is aes key used for encrypt and decrypt password
	Key                  string   `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LoginRequest) Reset()         { *m = LoginRequest{} }
func (m *LoginRequest) String() string { return proto.CompactTextString(m) }
func (*LoginRequest) ProtoMessage()    {}
func (*LoginRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{14}
}
func (m *LoginRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LoginRequest.Unmarshal(m, b)
}
func (m *LoginRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LoginRequest.Marshal(b, m, deterministic)
}
func (m *LoginRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LoginRequest.Merge(m, src)
}
func (m *LoginRequest) XXX_Size() int {
	return xxx_messageInfo_LoginRequest.Size(m)
}
func (m *LoginRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_LoginRequest.DiscardUnknown(m)
}

var xxx_messageInfo_LoginRequest proto.InternalMessageInfo

func (m *LoginRequest) GetServer() string {
	if m != nil {
		return m.Server
	}
	return ""
}

func (m *LoginRequest) GetUsername() string {
	if m != nil {
		return m.Username
	}
	return ""
}

func (m *LoginRequest) GetPassword() string {
	if m != nil {
		return m.Password
	}
	return ""
}

func (m *LoginRequest) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

type LoginResponse struct {
	// login response sent to front-end
	Content              string   `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LoginResponse) Reset()         { *m = LoginResponse{} }
func (m *LoginResponse) String() string { return proto.CompactTextString(m) }
func (*LoginResponse) ProtoMessage()    {}
func (*LoginResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{15}
}
func (m *LoginResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LoginResponse.Unmarshal(m, b)
}
func (m *LoginResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LoginResponse.Marshal(b, m, deterministic)
}
func (m *LoginResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LoginResponse.Merge(m, src)
}
func (m *LoginResponse) XXX_Size() int {
	return xxx_messageInfo_LoginResponse.Size(m)
}
func (m *LoginResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_LoginResponse.DiscardUnknown(m)
}

var xxx_messageInfo_LoginResponse proto.InternalMessageInfo

func (m *LoginResponse) GetContent() string {
	if m != nil {
		return m.Content
	}
	return ""
}

type LogoutRequest struct {
	// server to logout
	Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
	// logout from all registries
	All                  bool     `protobuf:"varint,2,opt,name=all,proto3" json:"all,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LogoutRequest) Reset()         { *m = LogoutRequest{} }
func (m *LogoutRequest) String() string { return proto.CompactTextString(m) }
func (*LogoutRequest) ProtoMessage()    {}
func (*LogoutRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{16}
}
func (m *LogoutRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LogoutRequest.Unmarshal(m, b)
}
func (m *LogoutRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LogoutRequest.Marshal(b, m, deterministic)
}
func (m *LogoutRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LogoutRequest.Merge(m, src)
}
func (m *LogoutRequest) XXX_Size() int {
	return xxx_messageInfo_LogoutRequest.Size(m)
}
func (m *LogoutRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_LogoutRequest.DiscardUnknown(m)
}

var xxx_messageInfo_LogoutRequest proto.InternalMessageInfo

func (m *LogoutRequest) GetServer() string {
	if m != nil {
		return m.Server
	}
	return ""
}

func (m *LogoutRequest) GetAll() bool {
	if m != nil {
		return m.All
	}
	return false
}

type LogoutResponse struct {
	// logout response sent to front-end
	Result               string   `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LogoutResponse) Reset()         { *m = LogoutResponse{} }
func (m *LogoutResponse) String() string { return proto.CompactTextString(m) }
func (*LogoutResponse) ProtoMessage()    {}
func (*LogoutResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{17}
}
func (m *LogoutResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LogoutResponse.Unmarshal(m, b)
}
func (m *LogoutResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LogoutResponse.Marshal(b, m, deterministic)
}
func (m *LogoutResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LogoutResponse.Merge(m, src)
}
func (m *LogoutResponse) XXX_Size() int {
	return xxx_messageInfo_LogoutResponse.Size(m)
}
func (m *LogoutResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_LogoutResponse.DiscardUnknown(m)
}

var xxx_messageInfo_LogoutResponse proto.InternalMessageInfo

func (m *LogoutResponse) GetResult() string {
	if m != nil {
		return m.Result
	}
	return ""
}

type LoadRequest struct {
	// path is the path of loading file
	Path                 string   `protobuf:"bytes,1,opt,name=path,proto3" json:"path,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_d71ef680555cb937, []int{18}
}
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) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

type LoadResponse struct {
	// log is the log sent to client
	Log                  string   `protobuf:"bytes,1,opt,name=log,proto3" json:"log,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_d71ef680555cb937, []int{19}
}
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) GetLog() string {
	if m != nil {
		return m.Log
	}
	return ""
}

type SaveRequest struct {
	// image is the image to save
	Image string `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
	// path is location for output tarball
	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
	// saveID is the unique ID for each time save
	// also is the part to construct tempory path to
	// store transport file
	SaveID               string   `protobuf:"bytes,3,opt,name=saveID,proto3" json:"saveID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SaveRequest) Reset()         { *m = SaveRequest{} }
func (m *SaveRequest) String() string { return proto.CompactTextString(m) }
func (*SaveRequest) ProtoMessage()    {}
func (*SaveRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{20}
}
func (m *SaveRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SaveRequest.Unmarshal(m, b)
}
func (m *SaveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SaveRequest.Marshal(b, m, deterministic)
}
func (m *SaveRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SaveRequest.Merge(m, src)
}
func (m *SaveRequest) XXX_Size() int {
	return xxx_messageInfo_SaveRequest.Size(m)
}
func (m *SaveRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_SaveRequest.DiscardUnknown(m)
}

var xxx_messageInfo_SaveRequest proto.InternalMessageInfo

func (m *SaveRequest) GetImage() string {
	if m != nil {
		return m.Image
	}
	return ""
}

func (m *SaveRequest) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

func (m *SaveRequest) GetSaveID() string {
	if m != nil {
		return m.SaveID
	}
	return ""
}

type SaveResponse struct {
	// data is the tarball of the saved image
	Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	// log is log send to cli
	Log                  string   `protobuf:"bytes,2,opt,name=log,proto3" json:"log,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SaveResponse) Reset()         { *m = SaveResponse{} }
func (m *SaveResponse) String() string { return proto.CompactTextString(m) }
func (*SaveResponse) ProtoMessage()    {}
func (*SaveResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{21}
}
func (m *SaveResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SaveResponse.Unmarshal(m, b)
}
func (m *SaveResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SaveResponse.Marshal(b, m, deterministic)
}
func (m *SaveResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SaveResponse.Merge(m, src)
}
func (m *SaveResponse) XXX_Size() int {
	return xxx_messageInfo_SaveResponse.Size(m)
}
func (m *SaveResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_SaveResponse.DiscardUnknown(m)
}

var xxx_messageInfo_SaveResponse proto.InternalMessageInfo

func (m *SaveResponse) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

func (m *SaveResponse) GetLog() string {
	if m != nil {
		return m.Log
	}
	return ""
}

type MemData struct {
	// memTotal is total memory
	MemTotal int64 `protobuf:"varint,1,opt,name=memTotal,proto3" json:"memTotal,omitempty"`
	// memFree is free memory
	MemFree int64 `protobuf:"varint,2,opt,name=memFree,proto3" json:"memFree,omitempty"`
	// swapTotal is total swap
	SwapTotal int64 `protobuf:"varint,3,opt,name=swapTotal,proto3" json:"swapTotal,omitempty"`
	// swapFree is free swap
	SwapFree             int64    `protobuf:"varint,4,opt,name=swapFree,proto3" json:"swapFree,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MemData) Reset()         { *m = MemData{} }
func (m *MemData) String() string { return proto.CompactTextString(m) }
func (*MemData) ProtoMessage()    {}
func (*MemData) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{22}
}
func (m *MemData) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MemData.Unmarshal(m, b)
}
func (m *MemData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MemData.Marshal(b, m, deterministic)
}
func (m *MemData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MemData.Merge(m, src)
}
func (m *MemData) XXX_Size() int {
	return xxx_messageInfo_MemData.Size(m)
}
func (m *MemData) XXX_DiscardUnknown() {
	xxx_messageInfo_MemData.DiscardUnknown(m)
}

var xxx_messageInfo_MemData proto.InternalMessageInfo

func (m *MemData) GetMemTotal() int64 {
	if m != nil {
		return m.MemTotal
	}
	return 0
}

func (m *MemData) GetMemFree() int64 {
	if m != nil {
		return m.MemFree
	}
	return 0
}

func (m *MemData) GetSwapTotal() int64 {
	if m != nil {
		return m.SwapTotal
	}
	return 0
}

func (m *MemData) GetSwapFree() int64 {
	if m != nil {
		return m.SwapFree
	}
	return 0
}

type StorageData struct {
	// storageDriver is storage driver for isula-build
	StorageDriver string `protobuf:"bytes,1,opt,name=storageDriver,proto3" json:"storageDriver,omitempty"`
	// storageBackingFs is storage backing file system
	StorageBackingFs     string   `protobuf:"bytes,2,opt,name=storageBackingFs,proto3" json:"storageBackingFs,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StorageData) Reset()         { *m = StorageData{} }
func (m *StorageData) String() string { return proto.CompactTextString(m) }
func (*StorageData) ProtoMessage()    {}
func (*StorageData) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{23}
}
func (m *StorageData) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StorageData.Unmarshal(m, b)
}
func (m *StorageData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StorageData.Marshal(b, m, deterministic)
}
func (m *StorageData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StorageData.Merge(m, src)
}
func (m *StorageData) XXX_Size() int {
	return xxx_messageInfo_StorageData.Size(m)
}
func (m *StorageData) XXX_DiscardUnknown() {
	xxx_messageInfo_StorageData.DiscardUnknown(m)
}

var xxx_messageInfo_StorageData proto.InternalMessageInfo

func (m *StorageData) GetStorageDriver() string {
	if m != nil {
		return m.StorageDriver
	}
	return ""
}

func (m *StorageData) GetStorageBackingFs() string {
	if m != nil {
		return m.StorageBackingFs
	}
	return ""
}

type RegistryData struct {
	// registriesSearch is registries.search registries
	RegistriesSearch []string `protobuf:"bytes,1,rep,name=registriesSearch,proto3" json:"registriesSearch,omitempty"`
	// registriesInsecure is registries.insecure registries
	RegistriesInsecure []string `protobuf:"bytes,2,rep,name=registriesInsecure,proto3" json:"registriesInsecure,omitempty"`
	// registriesBlock is registries.block registries
	RegistriesBlock      []string `protobuf:"bytes,3,rep,name=registriesBlock,proto3" json:"registriesBlock,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RegistryData) Reset()         { *m = RegistryData{} }
func (m *RegistryData) String() string { return proto.CompactTextString(m) }
func (*RegistryData) ProtoMessage()    {}
func (*RegistryData) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{24}
}
func (m *RegistryData) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RegistryData.Unmarshal(m, b)
}
func (m *RegistryData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RegistryData.Marshal(b, m, deterministic)
}
func (m *RegistryData) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RegistryData.Merge(m, src)
}
func (m *RegistryData) XXX_Size() int {
	return xxx_messageInfo_RegistryData.Size(m)
}
func (m *RegistryData) XXX_DiscardUnknown() {
	xxx_messageInfo_RegistryData.DiscardUnknown(m)
}

var xxx_messageInfo_RegistryData proto.InternalMessageInfo

func (m *RegistryData) GetRegistriesSearch() []string {
	if m != nil {
		return m.RegistriesSearch
	}
	return nil
}

func (m *RegistryData) GetRegistriesInsecure() []string {
	if m != nil {
		return m.RegistriesInsecure
	}
	return nil
}

func (m *RegistryData) GetRegistriesBlock() []string {
	if m != nil {
		return m.RegistriesBlock
	}
	return nil
}

type InfoResponse struct {
	// memInfo is memory information
	MemInfo *MemData `protobuf:"bytes,1,opt,name=memInfo,proto3" json:"memInfo,omitempty"`
	// storageInfo is storage information
	StorageInfo *StorageData `protobuf:"bytes,2,opt,name=storageInfo,proto3" json:"storageInfo,omitempty"`
	// registryInfo is registry information
	RegistryInfo *RegistryData `protobuf:"bytes,3,opt,name=registryInfo,proto3" json:"registryInfo,omitempty"`
	// dataRoot is persistent directory for isula-build
	DataRoot string `protobuf:"bytes,4,opt,name=dataRoot,proto3" json:"dataRoot,omitempty"`
	// runRoot is runtime directory for isula-build
	RunRoot string `protobuf:"bytes,5,opt,name=runRoot,proto3" json:"runRoot,omitempty"`
	// ociRuntime is OCI runtime for RUN command
	OCIRuntime string `protobuf:"bytes,6,opt,name=OCIRuntime,proto3" json:"OCIRuntime,omitempty"`
	// builderNum is number of builders
	BuilderNum int64 `protobuf:"varint,7,opt,name=builderNum,proto3" json:"builderNum,omitempty"`
	// goRoutines is number of go routines
	GoRoutines           int64    `protobuf:"varint,8,opt,name=goRoutines,proto3" json:"goRoutines,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *InfoResponse) Reset()         { *m = InfoResponse{} }
func (m *InfoResponse) String() string { return proto.CompactTextString(m) }
func (*InfoResponse) ProtoMessage()    {}
func (*InfoResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_d71ef680555cb937, []int{25}
}
func (m *InfoResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InfoResponse.Unmarshal(m, b)
}
func (m *InfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InfoResponse.Marshal(b, m, deterministic)
}
func (m *InfoResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InfoResponse.Merge(m, src)
}
func (m *InfoResponse) XXX_Size() int {
	return xxx_messageInfo_InfoResponse.Size(m)
}
func (m *InfoResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_InfoResponse.DiscardUnknown(m)
}

var xxx_messageInfo_InfoResponse proto.InternalMessageInfo

func (m *InfoResponse) GetMemInfo() *MemData {
	if m != nil {
		return m.MemInfo
	}
	return nil
}

func (m *InfoResponse) GetStorageInfo() *StorageData {
	if m != nil {
		return m.StorageInfo
	}
	return nil
}

func (m *InfoResponse) GetRegistryInfo() *RegistryData {
	if m != nil {
		return m.RegistryInfo
	}
	return nil
}

func (m *InfoResponse) GetDataRoot() string {
	if m != nil {
		return m.DataRoot
	}
	return ""
}

func (m *InfoResponse) GetRunRoot() string {
	if m != nil {
		return m.RunRoot
	}
	return ""
}

func (m *InfoResponse) GetOCIRuntime() string {
	if m != nil {
		return m.OCIRuntime
	}
	return ""
}

func (m *InfoResponse) GetBuilderNum() int64 {
	if m != nil {
		return m.BuilderNum
	}
	return 0
}

func (m *InfoResponse) GetGoRoutines() int64 {
	if m != nil {
		return m.GoRoutines
	}
	return 0
}

func init() {
	proto.RegisterEnum("isula.build.v1.HealthCheckResponse_ServingStatus", HealthCheckResponse_ServingStatus_name, HealthCheckResponse_ServingStatus_value)
	proto.RegisterType((*BuildRequest)(nil), "isula.build.v1.BuildRequest")
	proto.RegisterType((*ImportRequest)(nil), "isula.build.v1.ImportRequest")
	proto.RegisterType((*ImportResponse)(nil), "isula.build.v1.ImportResponse")
	proto.RegisterType((*BuildStatic)(nil), "isula.build.v1.BuildStatic")
	proto.RegisterType((*BuildResponse)(nil), "isula.build.v1.BuildResponse")
	proto.RegisterType((*StatusRequest)(nil), "isula.build.v1.StatusRequest")
	proto.RegisterType((*StatusResponse)(nil), "isula.build.v1.StatusResponse")
	proto.RegisterType((*ListRequest)(nil), "isula.build.v1.ListRequest")
	proto.RegisterType((*TagRequest)(nil), "isula.build.v1.TagRequest")
	proto.RegisterType((*ListResponse)(nil), "isula.build.v1.ListResponse")
	proto.RegisterType((*ListResponse_ImageInfo)(nil), "isula.build.v1.ListResponse.ImageInfo")
	proto.RegisterType((*VersionResponse)(nil), "isula.build.v1.VersionResponse")
	proto.RegisterType((*RemoveRequest)(nil), "isula.build.v1.RemoveRequest")
	proto.RegisterType((*RemoveResponse)(nil), "isula.build.v1.RemoveResponse")
	proto.RegisterType((*HealthCheckResponse)(nil), "isula.build.v1.HealthCheckResponse")
	proto.RegisterType((*LoginRequest)(nil), "isula.build.v1.LoginRequest")
	proto.RegisterType((*LoginResponse)(nil), "isula.build.v1.LoginResponse")
	proto.RegisterType((*LogoutRequest)(nil), "isula.build.v1.LogoutRequest")
	proto.RegisterType((*LogoutResponse)(nil), "isula.build.v1.LogoutResponse")
	proto.RegisterType((*LoadRequest)(nil), "isula.build.v1.LoadRequest")
	proto.RegisterType((*LoadResponse)(nil), "isula.build.v1.LoadResponse")
	proto.RegisterType((*SaveRequest)(nil), "isula.build.v1.SaveRequest")
	proto.RegisterType((*SaveResponse)(nil), "isula.build.v1.SaveResponse")
	proto.RegisterType((*MemData)(nil), "isula.build.v1.MemData")
	proto.RegisterType((*StorageData)(nil), "isula.build.v1.StorageData")
	proto.RegisterType((*RegistryData)(nil), "isula.build.v1.RegistryData")
	proto.RegisterType((*InfoResponse)(nil), "isula.build.v1.InfoResponse")
}

func init() { proto.RegisterFile("api/services/control.proto", fileDescriptor_d71ef680555cb937) }

var fileDescriptor_d71ef680555cb937 = []byte{
	// 1418 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0x6d, 0x6f, 0xdb, 0xb6,
	0x13, 0xff, 0xcb, 0x72, 0x9c, 0xe4, 0x64, 0xa7, 0x01, 0xff, 0x45, 0x26, 0xb8, 0x69, 0x9b, 0x69,
	0xc5, 0xe0, 0x75, 0x80, 0x93, 0x66, 0x7d, 0xb1, 0x0e, 0xeb, 0xb0, 0x3c, 0xb4, 0x9d, 0xd7, 0xd6,
	0xc1, 0x94, 0xac, 0x7b, 0x59, 0xb0, 0x36, 0xa3, 0x10, 0x91, 0x44, 0x8d, 0xa4, 0xd2, 0x7a, 0xfb,
	0x1a, 0x7b, 0x33, 0x60, 0xfb, 0x0c, 0xfb, 0x20, 0xfb, 0x02, 0xfb, 0x38, 0x03, 0x29, 0x52, 0x92,
	0x2d, 0xa7, 0xdd, 0x3b, 0xde, 0xef, 0xee, 0xc8, 0x7b, 0xe2, 0xdd, 0x41, 0x1f, 0x67, 0x74, 0x57,
	0x10, 0x7e, 0x45, 0x27, 0x44, 0xec, 0x4e, 0x58, 0x2a, 0x39, 0x8b, 0x87, 0x19, 0x67, 0x92, 0xa1,
	0x0d, 0x2a, 0xf2, 0x18, 0x0f, 0xdf, 0xe4, 0x34, 0x9e, 0x0e, 0xaf, 0x1e, 0xf4, 0x6f, 0x45, 0x8c,
	0x45, 0x31, 0xd9, 0xd5, 0xdc, 0x37, 0xf9, 0xf9, 0x2e, 0x49, 0x32, 0x39, 0x2b, 0x84, 0xfb, 0x77,
	0x17, 0x99, 0x92, 0x26, 0x44, 0x48, 0x9c, 0x64, 0x85, 0x40, 0xf0, 0x97, 0x0b, 0xdd, 0x43, 0x75,
	0x55, 0x48, 0x7e, 0xce, 0x89, 0x90, 0x68, 0x1b, 0xd6, 0xf5, 0xd5, 0x67, 0xb3, 0x8c, 0xf8, 0xce,
	0x8e, 0x33, 0x58, 0x0f, 0x2b, 0x00, 0xf9, 0xb0, 0xaa, 0x89, 0xd1, 0xb1, 0xdf, 0xd2, 0x3c, 0x4b,
	0xa2, 0x3b, 0x00, 0xca, 0x4e, 0xf2, 0x4e, 0x1e, 0x53, 0xee, 0xbb, 0x9a, 0x59, 0x43, 0xd0, 0x0e,
	0x78, 0xe7, 0x34, 0x26, 0x47, 0x0a, 0x49, 0xa5, 0xdf, 0xd6, 0x02, 0x75, 0x08, 0x6d, 0x41, 0x87,
	0xe5, 0x32, 0xcb, 0xa5, 0xbf, 0xa2, 0x99, 0x86, 0x2a, 0x2d, 0x3a, 0xe0, 0x91, 0xf0, 0x3b, 0x3b,
	0x6e, 0x69, 0x91, 0x02, 0xd0, 0x4d, 0x58, 0xc9, 0x38, 0x7b, 0x37, 0xf3, 0x57, 0x77, 0x9c, 0xc1,
	0x5a, 0x58, 0x10, 0xca, 0x4e, 0x4a, 0xa7, 0xea, 0x76, 0x7f, 0xad, 0xb0, 0xd3, 0x90, 0xe8, 0x31,
	0x78, 0x5a, 0xf9, 0x54, 0x62, 0x49, 0x27, 0xfe, 0xfa, 0x8e, 0x33, 0xf0, 0xf6, 0x6f, 0x0d, 0xe7,
	0x83, 0x3a, 0x3c, 0xac, 0x44, 0xc2, 0xba, 0xbc, 0x72, 0x93, 0xa4, 0x13, 0x3e, 0xcb, 0xe4, 0x73,
	0x32, 0xf3, 0xa1, 0x70, 0xb3, 0x42, 0xd0, 0x3d, 0xe8, 0xe1, 0xe9, 0x94, 0x4a, 0xca, 0x52, 0x1c,
	0x9f, 0xe1, 0xc8, 0xf7, 0xb4, 0xc8, 0x3c, 0xa8, 0x83, 0x85, 0xb3, 0x83, 0xe9, 0xf4, 0x05, 0x15,
	0xd2, 0xef, 0x6a, 0x9f, 0x6a, 0x08, 0xea, 0xc3, 0x1a, 0x49, 0x25, 0x95, 0xb3, 0xd1, 0xb1, 0xdf,
	0xd3, 0x17, 0x94, 0x74, 0x70, 0x00, 0xbd, 0x51, 0x92, 0x31, 0x2e, 0x6b, 0x19, 0xe3, 0xe4, 0x9c,
	0x70, 0x92, 0x4e, 0xca, 0x8c, 0x95, 0x00, 0x42, 0xd0, 0x9e, 0x62, 0x89, 0x75, 0xba, 0xba, 0xa1,
	0x3e, 0x07, 0x01, 0x6c, 0xd8, 0x2b, 0x44, 0xc6, 0x52, 0x41, 0xd0, 0x26, 0xb8, 0x31, 0x8b, 0x8c,
	0xb6, 0x3a, 0x06, 0xcf, 0xc0, 0xab, 0x05, 0x01, 0x7d, 0x69, 0xcb, 0x82, 0x26, 0xc5, 0x23, 0xde,
	0x7e, 0x7f, 0x58, 0x14, 0xd7, 0xd0, 0x16, 0xd7, 0xf0, 0xcc, 0x16, 0x57, 0x58, 0x09, 0x07, 0x8f,
	0xa1, 0x67, 0x0a, 0xcc, 0xbc, 0xa5, 0x72, 0x93, 0xe0, 0x88, 0x8c, 0x8e, 0xcd, 0x7b, 0x96, 0x5c,
	0x6a, 0xeb, 0x67, 0xd0, 0x53, 0x26, 0xe4, 0xc2, 0xba, 0x5b, 0x2b, 0x41, 0x67, 0xae, 0x04, 0x83,
	0xfb, 0xb0, 0x61, 0x45, 0xab, 0xa7, 0x26, 0xa6, 0xe0, 0x8c, 0xac, 0x21, 0x83, 0xcf, 0xc1, 0x53,
	0x91, 0xae, 0xc5, 0x50, 0x1b, 0x31, 0xc6, 0x49, 0x19, 0xc3, 0x12, 0x08, 0x1e, 0x02, 0x9c, 0xe1,
	0xc8, 0xca, 0xde, 0x84, 0x15, 0xcd, 0x32, 0x72, 0x05, 0xa1, 0x22, 0x28, 0x71, 0x64, 0x7e, 0x85,
	0x3a, 0x06, 0x7f, 0x3b, 0xd0, 0x2d, 0xde, 0x30, 0xd6, 0x7c, 0x03, 0x1d, 0x2d, 0x2b, 0x7c, 0x67,
	0xc7, 0x1d, 0x78, 0xfb, 0x9f, 0x2e, 0x56, 0x5d, 0x5d, 0x7a, 0x38, 0xd2, 0x41, 0x49, 0xcf, 0x59,
	0x68, 0xb4, 0xfa, 0xbf, 0xc2, 0x7a, 0x09, 0xaa, 0x12, 0xe2, 0x24, 0x63, 0x82, 0x4a, 0xc6, 0x67,
	0xc6, 0x94, 0x1a, 0xd2, 0xb4, 0x07, 0x6d, 0x40, 0x8b, 0x4e, 0xcd, 0xcf, 0x6c, 0xd1, 0xa9, 0x0e,
	0x0e, 0x27, 0x58, 0x92, 0xa9, 0xf9, 0x8d, 0x96, 0x54, 0x79, 0x10, 0xf4, 0x17, 0x62, 0xfe, 0xa1,
	0x3e, 0x07, 0x7f, 0x3a, 0x70, 0xe3, 0x15, 0xe1, 0x82, 0xb2, 0xb4, 0x1e, 0xde, 0xab, 0x02, 0xb2,
	0xe1, 0x35, 0xa4, 0x8a, 0x67, 0xc4, 0x8c, 0xb8, 0xb1, 0xa1, 0x02, 0x34, 0x97, 0xca, 0x23, 0x96,
	0x24, 0x54, 0x1a, 0x83, 0x2a, 0xa0, 0xea, 0x40, 0xaa, 0xd4, 0xda, 0xf5, 0x0e, 0x44, 0x13, 0xa2,
	0xbb, 0x84, 0x38, 0xe0, 0x93, 0x8b, 0xb2, 0x4b, 0x68, 0x2a, 0xf8, 0x01, 0x7a, 0x21, 0x49, 0xd8,
	0x15, 0xa9, 0xd5, 0x49, 0x55, 0x66, 0x6e, 0xbd, 0xcc, 0x36, 0xc1, 0xc5, 0x71, 0xac, 0xcd, 0x5a,
	0x0b, 0xd5, 0xb1, 0x68, 0x22, 0x79, 0x4a, 0xb4, 0x31, 0xba, 0x89, 0xe4, 0xa9, 0x4a, 0xfb, 0x86,
	0xbd, 0xd2, 0x38, 0x1c, 0x40, 0x37, 0xc6, 0x33, 0xc2, 0x5f, 0x12, 0x21, 0xaa, 0x0a, 0x98, 0xc3,
	0x82, 0x3f, 0x1c, 0xf8, 0xff, 0x77, 0x04, 0xc7, 0xf2, 0xe2, 0xe8, 0x82, 0x4c, 0x2e, 0x4b, 0xdd,
	0x11, 0x74, 0x84, 0xae, 0x4e, 0xad, 0xb5, 0xb1, 0xff, 0x60, 0x31, 0xfb, 0x4b, 0x94, 0x86, 0xa7,
	0x6a, 0x06, 0xa4, 0x91, 0x29, 0x6b, 0x73, 0x41, 0xf0, 0x15, 0xf4, 0xe6, 0x18, 0xc8, 0x83, 0xd5,
	0x1f, 0xc7, 0xcf, 0xc7, 0x27, 0x3f, 0x8d, 0x37, 0xff, 0xa7, 0x88, 0xd3, 0x27, 0xe1, 0xab, 0xd1,
	0xf8, 0xd9, 0xa6, 0x83, 0x6e, 0x80, 0x37, 0x3e, 0x39, 0x7b, 0x6d, 0x81, 0x56, 0x90, 0x41, 0xf7,
	0x05, 0x8b, 0x68, 0x6a, 0xc3, 0xb4, 0x05, 0x1d, 0x35, 0x68, 0x08, 0x37, 0xce, 0x18, 0x4a, 0xb5,
	0xa0, 0x5c, 0x10, 0x9e, 0xaa, 0x0f, 0x51, 0x24, 0xb0, 0xa4, 0x15, 0x2f, 0xc3, 0x42, 0xbc, 0x65,
	0xdc, 0xd6, 0x53, 0x49, 0xab, 0xe0, 0x5e, 0x92, 0x99, 0xc9, 0x9b, 0x3a, 0xaa, 0x1f, 0x6c, 0x5e,
	0xfc, 0xe0, 0xaf, 0x7c, 0xa4, 0x45, 0x59, 0x2e, 0x3f, 0x64, 0x5d, 0x23, 0x85, 0xc1, 0x00, 0x36,
	0xac, 0xaa, 0x79, 0x66, 0x0b, 0x3a, 0x9c, 0x88, 0x3c, 0xb6, 0xaf, 0x18, 0x2a, 0xf8, 0x18, 0xbc,
	0x17, 0x0c, 0x97, 0x03, 0x0f, 0x41, 0x3b, 0xc3, 0xf2, 0xc2, 0x08, 0xe9, 0x73, 0xb0, 0xa3, 0x82,
	0x84, 0xa7, 0xef, 0x69, 0x8f, 0x27, 0xe0, 0x9d, 0xe2, 0xaa, 0xd8, 0x96, 0xf7, 0x04, 0x7b, 0x75,
	0xab, 0xba, 0x5a, 0x7b, 0x84, 0xaf, 0x54, 0x55, 0xba, 0xc6, 0x23, 0x4d, 0x05, 0x0f, 0xa1, 0x5b,
	0x5c, 0x68, 0x9e, 0xb4, 0xbd, 0xd0, 0xa9, 0x7a, 0xa1, 0x35, 0xa3, 0x55, 0x99, 0x31, 0x83, 0xd5,
	0x97, 0x24, 0x39, 0x56, 0xcc, 0x3e, 0xac, 0x25, 0x24, 0x39, 0x63, 0x12, 0xc7, 0x5a, 0xc9, 0x0d,
	0x4b, 0x5a, 0x45, 0x3c, 0x21, 0xc9, 0x53, 0x4e, 0x8a, 0x5c, 0xba, 0xa1, 0x25, 0xd5, 0x67, 0x13,
	0x6f, 0x71, 0x56, 0xa8, 0xb9, 0x9a, 0x57, 0x01, 0xea, 0x4e, 0x45, 0x68, 0xc5, 0x76, 0x71, 0xa7,
	0xa5, 0x83, 0xd7, 0xe0, 0x9d, 0x4a, 0xc6, 0x71, 0x44, 0xf4, 0xf3, 0xf7, 0xa0, 0x27, 0x0c, 0xc9,
	0x69, 0x95, 0xb0, 0x79, 0x10, 0xdd, 0x87, 0x4d, 0x03, 0x1c, 0xe2, 0xc9, 0x25, 0x4d, 0xa3, 0xa7,
	0xc2, 0xb8, 0xd3, 0xc0, 0x83, 0xdf, 0x1c, 0xe8, 0x86, 0x24, 0xa2, 0x42, 0xf2, 0x99, 0x7e, 0xe2,
	0x3e, 0x6c, 0xf2, 0x82, 0xa6, 0x44, 0x9c, 0x12, 0xac, 0x9a, 0x40, 0xf1, 0xb5, 0x1b, 0x38, 0x1a,
	0x02, 0xaa, 0xb0, 0x51, 0x2a, 0xc8, 0x24, 0xe7, 0xca, 0x79, 0x25, 0xbd, 0x84, 0x83, 0x06, 0x70,
	0xa3, 0x42, 0x0f, 0x63, 0x36, 0xb9, 0xf4, 0x5d, 0x2d, 0xbc, 0x08, 0x07, 0xff, 0xb4, 0xa0, 0xab,
	0xdb, 0xb2, 0xcd, 0xd4, 0x03, 0x1d, 0x5c, 0x05, 0x99, 0xc1, 0xf8, 0xd1, 0xe2, 0xcf, 0x36, 0x29,
	0x0a, 0xad, 0x9c, 0x5a, 0x42, 0x8c, 0xbb, 0x5a, 0xad, 0xb5, 0x7c, 0x09, 0xa9, 0x85, 0x37, 0xac,
	0xcb, 0xa3, 0x6f, 0xa1, 0x6b, 0xac, 0x9a, 0x69, 0x7d, 0x57, 0xeb, 0x6f, 0x2f, 0xea, 0xd7, 0x83,
	0x17, 0xce, 0x69, 0xa8, 0xc4, 0xaa, 0x8a, 0x0a, 0x19, 0xb3, 0xab, 0x58, 0x49, 0xab, 0x62, 0xe1,
	0x79, 0xaa, 0x59, 0x45, 0x8b, 0xb5, 0xa4, 0x9a, 0x39, 0x27, 0x47, 0xa3, 0x30, 0x4f, 0xd5, 0x16,
	0xe9, 0x77, 0x8a, 0x99, 0x53, 0x21, 0x8a, 0xaf, 0x1f, 0x27, 0x7c, 0x9c, 0x27, 0x7a, 0x21, 0x73,
	0xc3, 0x1a, 0xa2, 0xf8, 0x11, 0x0b, 0x59, 0x2e, 0x69, 0x4a, 0x84, 0x5e, 0xcc, 0xdc, 0xb0, 0x86,
	0xec, 0xff, 0xbe, 0x0a, 0xab, 0x47, 0xc5, 0xb2, 0x8b, 0x9e, 0xc2, 0x8a, 0x5e, 0x1b, 0xd0, 0xf6,
	0xd2, 0xdd, 0xcc, 0x7c, 0xbc, 0xfe, 0xed, 0x6b, 0xb8, 0x45, 0x6e, 0xf6, 0x1c, 0xd5, 0x76, 0x4d,
	0x93, 0xbc, 0xdd, 0x8c, 0x6f, 0x6d, 0xaf, 0xe8, 0xdf, 0xb9, 0x8e, 0x5d, 0x5e, 0x75, 0x00, 0x6d,
	0xbd, 0x9d, 0xdd, 0x5a, 0x3e, 0xb7, 0x8b, 0x6b, 0xb6, 0xdf, 0x37, 0xd4, 0xd1, 0x21, 0xac, 0xda,
	0x21, 0xb8, 0xd5, 0x58, 0x9f, 0x9e, 0xa8, 0xc5, 0xbd, 0x7f, 0x77, 0xf1, 0x82, 0xc5, 0xa9, 0x3b,
	0x82, 0x4e, 0x31, 0x96, 0x9a, 0x1e, 0xcd, 0x4d, 0xc0, 0xa6, 0x47, 0xf3, 0xd3, 0x6c, 0xcf, 0x41,
	0xdf, 0x83, 0x57, 0x9b, 0x3a, 0xd7, 0x9a, 0xf4, 0xc9, 0x7f, 0x18, 0x55, 0xe8, 0x18, 0x56, 0x74,
	0x9b, 0x6f, 0x26, 0xac, 0x3e, 0x6f, 0x9a, 0x09, 0x9b, 0x9f, 0x0d, 0xcf, 0xa0, 0x53, 0xb4, 0x71,
	0xb4, 0x4c, 0xb0, 0x9a, 0x0c, 0x4d, 0xe7, 0x16, 0xba, 0xff, 0x11, 0xb4, 0x55, 0x0b, 0x5f, 0x92,
	0xac, 0xaa, 0xf7, 0x2f, 0x49, 0x56, 0xad, 0xeb, 0xef, 0x39, 0xe8, 0x39, 0x74, 0x8a, 0x45, 0xb9,
	0x69, 0xcd, 0xdc, 0x0e, 0xde, 0xb4, 0x66, 0x7e, 0xbf, 0x1e, 0x38, 0x7b, 0x0e, 0x7a, 0x04, 0xae,
	0xda, 0xfd, 0xfb, 0x8b, 0xa2, 0xd5, 0x6a, 0xd9, 0xbf, 0x26, 0x01, 0xca, 0x19, 0x35, 0x1c, 0x9a,
	0xce, 0xd4, 0x66, 0x50, 0xd3, 0x99, 0xfa, 0x3c, 0xd9, 0x73, 0xd0, 0xd7, 0xd0, 0xd6, 0x7f, 0xff,
	0xba, 0x2c, 0x37, 0xf4, 0xeb, 0x5d, 0xee, 0x4d, 0x47, 0x4b, 0x7f, 0xf1, 0x6f, 0x00, 0x00, 0x00,
	0xff, 0xff, 0x35, 0x26, 0x1e, 0xed, 0x9b, 0x0e, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// ControlClient is the client API for Control service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ControlClient interface {
	// Build requests a new image building
	Build(ctx context.Context, in *BuildRequest, opts ...grpc.CallOption) (Control_BuildClient, error)
	// Status pipes the image building process log back to client
	Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (Control_StatusClient, error)
	// List lists all images in isula-builder
	List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error)
	// Version requests version information of isula-builder
	Version(ctx context.Context, in *types.Empty, opts ...grpc.CallOption) (*VersionResponse, error)
	// Remove sends an image remove request to isula-builder
	Remove(ctx context.Context, in *RemoveRequest, opts ...grpc.CallOption) (Control_RemoveClient, error)
	// HealthCheck requests a health checking in isula-builder
	HealthCheck(ctx context.Context, in *types.Empty, opts ...grpc.CallOption) (*HealthCheckResponse, error)
	// Login requests to access image registry with username and password
	Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error)
	// Logout requests to logout registry and delete any credentials
	Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error)
	// Load requests an image tar load
	Load(ctx context.Context, in *LoadRequest, opts ...grpc.CallOption) (Control_LoadClient, error)
	// Import requests import a new image
	Import(ctx context.Context, opts ...grpc.CallOption) (Control_ImportClient, error)
	// Tag requests to tag an image
	Tag(ctx context.Context, in *TagRequest, opts ...grpc.CallOption) (*types.Empty, error)
	// Save saves the image to tarball
	Save(ctx context.Context, in *SaveRequest, opts ...grpc.CallOption) (Control_SaveClient, error)
	// Info requests isula-build system information
	Info(ctx context.Context, in *types.Empty, opts ...grpc.CallOption) (*InfoResponse, error)
}

type controlClient struct {
	cc *grpc.ClientConn
}

func NewControlClient(cc *grpc.ClientConn) ControlClient {
	return &controlClient{cc}
}

func (c *controlClient) Build(ctx context.Context, in *BuildRequest, opts ...grpc.CallOption) (Control_BuildClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Control_serviceDesc.Streams[0], "/isula.build.v1.Control/Build", opts...)
	if err != nil {
		return nil, err
	}
	x := &controlBuildClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Control_BuildClient interface {
	Recv() (*BuildResponse, error)
	grpc.ClientStream
}

type controlBuildClient struct {
	grpc.ClientStream
}

func (x *controlBuildClient) Recv() (*BuildResponse, error) {
	m := new(BuildResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *controlClient) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (Control_StatusClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Control_serviceDesc.Streams[1], "/isula.build.v1.Control/Status", opts...)
	if err != nil {
		return nil, err
	}
	x := &controlStatusClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Control_StatusClient interface {
	Recv() (*StatusResponse, error)
	grpc.ClientStream
}

type controlStatusClient struct {
	grpc.ClientStream
}

func (x *controlStatusClient) Recv() (*StatusResponse, error) {
	m := new(StatusResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *controlClient) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error) {
	out := new(ListResponse)
	err := c.cc.Invoke(ctx, "/isula.build.v1.Control/List", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *controlClient) Version(ctx context.Context, in *types.Empty, opts ...grpc.CallOption) (*VersionResponse, error) {
	out := new(VersionResponse)
	err := c.cc.Invoke(ctx, "/isula.build.v1.Control/Version", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *controlClient) Remove(ctx context.Context, in *RemoveRequest, opts ...grpc.CallOption) (Control_RemoveClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Control_serviceDesc.Streams[2], "/isula.build.v1.Control/Remove", opts...)
	if err != nil {
		return nil, err
	}
	x := &controlRemoveClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Control_RemoveClient interface {
	Recv() (*RemoveResponse, error)
	grpc.ClientStream
}

type controlRemoveClient struct {
	grpc.ClientStream
}

func (x *controlRemoveClient) Recv() (*RemoveResponse, error) {
	m := new(RemoveResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *controlClient) HealthCheck(ctx context.Context, in *types.Empty, opts ...grpc.CallOption) (*HealthCheckResponse, error) {
	out := new(HealthCheckResponse)
	err := c.cc.Invoke(ctx, "/isula.build.v1.Control/HealthCheck", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *controlClient) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) {
	out := new(LoginResponse)
	err := c.cc.Invoke(ctx, "/isula.build.v1.Control/Login", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *controlClient) Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error) {
	out := new(LogoutResponse)
	err := c.cc.Invoke(ctx, "/isula.build.v1.Control/Logout", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *controlClient) Load(ctx context.Context, in *LoadRequest, opts ...grpc.CallOption) (Control_LoadClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Control_serviceDesc.Streams[3], "/isula.build.v1.Control/Load", opts...)
	if err != nil {
		return nil, err
	}
	x := &controlLoadClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Control_LoadClient interface {
	Recv() (*LoadResponse, error)
	grpc.ClientStream
}

type controlLoadClient struct {
	grpc.ClientStream
}

func (x *controlLoadClient) Recv() (*LoadResponse, error) {
	m := new(LoadResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *controlClient) Import(ctx context.Context, opts ...grpc.CallOption) (Control_ImportClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Control_serviceDesc.Streams[4], "/isula.build.v1.Control/Import", opts...)
	if err != nil {
		return nil, err
	}
	x := &controlImportClient{stream}
	return x, nil
}

type Control_ImportClient interface {
	Send(*ImportRequest) error
	Recv() (*ImportResponse, error)
	grpc.ClientStream
}

type controlImportClient struct {
	grpc.ClientStream
}

func (x *controlImportClient) Send(m *ImportRequest) error {
	return x.ClientStream.SendMsg(m)
}

func (x *controlImportClient) Recv() (*ImportResponse, error) {
	m := new(ImportResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *controlClient) Tag(ctx context.Context, in *TagRequest, opts ...grpc.CallOption) (*types.Empty, error) {
	out := new(types.Empty)
	err := c.cc.Invoke(ctx, "/isula.build.v1.Control/Tag", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *controlClient) Save(ctx context.Context, in *SaveRequest, opts ...grpc.CallOption) (Control_SaveClient, error) {
	stream, err := c.cc.NewStream(ctx, &_Control_serviceDesc.Streams[5], "/isula.build.v1.Control/Save", opts...)
	if err != nil {
		return nil, err
	}
	x := &controlSaveClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Control_SaveClient interface {
	Recv() (*SaveResponse, error)
	grpc.ClientStream
}

type controlSaveClient struct {
	grpc.ClientStream
}

func (x *controlSaveClient) Recv() (*SaveResponse, error) {
	m := new(SaveResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *controlClient) Info(ctx context.Context, in *types.Empty, opts ...grpc.CallOption) (*InfoResponse, error) {
	out := new(InfoResponse)
	err := c.cc.Invoke(ctx, "/isula.build.v1.Control/Info", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// ControlServer is the server API for Control service.
type ControlServer interface {
	// Build requests a new image building
	Build(*BuildRequest, Control_BuildServer) error
	// Status pipes the image building process log back to client
	Status(*StatusRequest, Control_StatusServer) error
	// List lists all images in isula-builder
	List(context.Context, *ListRequest) (*ListResponse, error)
	// Version requests version information of isula-builder
	Version(context.Context, *types.Empty) (*VersionResponse, error)
	// Remove sends an image remove request to isula-builder
	Remove(*RemoveRequest, Control_RemoveServer) error
	// HealthCheck requests a health checking in isula-builder
	HealthCheck(context.Context, *types.Empty) (*HealthCheckResponse, error)
	// Login requests to access image registry with username and password
	Login(context.Context, *LoginRequest) (*LoginResponse, error)
	// Logout requests to logout registry and delete any credentials
	Logout(context.Context, *LogoutRequest) (*LogoutResponse, error)
	// Load requests an image tar load
	Load(*LoadRequest, Control_LoadServer) error
	// Import requests import a new image
	Import(Control_ImportServer) error
	// Tag requests to tag an image
	Tag(context.Context, *TagRequest) (*types.Empty, error)
	// Save saves the image to tarball
	Save(*SaveRequest, Control_SaveServer) error
	// Info requests isula-build system information
	Info(context.Context, *types.Empty) (*InfoResponse, error)
}

// UnimplementedControlServer can be embedded to have forward compatible implementations.
type UnimplementedControlServer struct {
}

func (*UnimplementedControlServer) Build(req *BuildRequest, srv Control_BuildServer) error {
	return status.Errorf(codes.Unimplemented, "method Build not implemented")
}
func (*UnimplementedControlServer) Status(req *StatusRequest, srv Control_StatusServer) error {
	return status.Errorf(codes.Unimplemented, "method Status not implemented")
}
func (*UnimplementedControlServer) List(ctx context.Context, req *ListRequest) (*ListResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method List not implemented")
}
func (*UnimplementedControlServer) Version(ctx context.Context, req *types.Empty) (*VersionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Version not implemented")
}
func (*UnimplementedControlServer) Remove(req *RemoveRequest, srv Control_RemoveServer) error {
	return status.Errorf(codes.Unimplemented, "method Remove not implemented")
}
func (*UnimplementedControlServer) HealthCheck(ctx context.Context, req *types.Empty) (*HealthCheckResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method HealthCheck not implemented")
}
func (*UnimplementedControlServer) Login(ctx context.Context, req *LoginRequest) (*LoginResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Login not implemented")
}
func (*UnimplementedControlServer) Logout(ctx context.Context, req *LogoutRequest) (*LogoutResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Logout not implemented")
}
func (*UnimplementedControlServer) Load(req *LoadRequest, srv Control_LoadServer) error {
	return status.Errorf(codes.Unimplemented, "method Load not implemented")
}
func (*UnimplementedControlServer) Import(srv Control_ImportServer) error {
	return status.Errorf(codes.Unimplemented, "method Import not implemented")
}
func (*UnimplementedControlServer) Tag(ctx context.Context, req *TagRequest) (*types.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Tag not implemented")
}
func (*UnimplementedControlServer) Save(req *SaveRequest, srv Control_SaveServer) error {
	return status.Errorf(codes.Unimplemented, "method Save not implemented")
}
func (*UnimplementedControlServer) Info(ctx context.Context, req *types.Empty) (*InfoResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Info not implemented")
}

func RegisterControlServer(s *grpc.Server, srv ControlServer) {
	s.RegisterService(&_Control_serviceDesc, srv)
}

func _Control_Build_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(BuildRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ControlServer).Build(m, &controlBuildServer{stream})
}

type Control_BuildServer interface {
	Send(*BuildResponse) error
	grpc.ServerStream
}

type controlBuildServer struct {
	grpc.ServerStream
}

func (x *controlBuildServer) Send(m *BuildResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Control_Status_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(StatusRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ControlServer).Status(m, &controlStatusServer{stream})
}

type Control_StatusServer interface {
	Send(*StatusResponse) error
	grpc.ServerStream
}

type controlStatusServer struct {
	grpc.ServerStream
}

func (x *controlStatusServer) Send(m *StatusResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Control_List_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControlServer).List(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/isula.build.v1.Control/List",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControlServer).List(ctx, req.(*ListRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Control_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(types.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControlServer).Version(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/isula.build.v1.Control/Version",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControlServer).Version(ctx, req.(*types.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _Control_Remove_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(RemoveRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ControlServer).Remove(m, &controlRemoveServer{stream})
}

type Control_RemoveServer interface {
	Send(*RemoveResponse) error
	grpc.ServerStream
}

type controlRemoveServer struct {
	grpc.ServerStream
}

func (x *controlRemoveServer) Send(m *RemoveResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Control_HealthCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(types.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControlServer).HealthCheck(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/isula.build.v1.Control/HealthCheck",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControlServer).HealthCheck(ctx, req.(*types.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _Control_Login_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LoginRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControlServer).Login(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/isula.build.v1.Control/Login",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControlServer).Login(ctx, req.(*LoginRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Control_Logout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LogoutRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControlServer).Logout(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/isula.build.v1.Control/Logout",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControlServer).Logout(ctx, req.(*LogoutRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Control_Load_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(LoadRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ControlServer).Load(m, &controlLoadServer{stream})
}

type Control_LoadServer interface {
	Send(*LoadResponse) error
	grpc.ServerStream
}

type controlLoadServer struct {
	grpc.ServerStream
}

func (x *controlLoadServer) Send(m *LoadResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Control_Import_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(ControlServer).Import(&controlImportServer{stream})
}

type Control_ImportServer interface {
	Send(*ImportResponse) error
	Recv() (*ImportRequest, error)
	grpc.ServerStream
}

type controlImportServer struct {
	grpc.ServerStream
}

func (x *controlImportServer) Send(m *ImportResponse) error {
	return x.ServerStream.SendMsg(m)
}

func (x *controlImportServer) Recv() (*ImportRequest, error) {
	m := new(ImportRequest)
	if err := x.ServerStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func _Control_Tag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TagRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControlServer).Tag(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/isula.build.v1.Control/Tag",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControlServer).Tag(ctx, req.(*TagRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Control_Save_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(SaveRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ControlServer).Save(m, &controlSaveServer{stream})
}

type Control_SaveServer interface {
	Send(*SaveResponse) error
	grpc.ServerStream
}

type controlSaveServer struct {
	grpc.ServerStream
}

func (x *controlSaveServer) Send(m *SaveResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _Control_Info_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(types.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ControlServer).Info(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/isula.build.v1.Control/Info",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ControlServer).Info(ctx, req.(*types.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

var _Control_serviceDesc = grpc.ServiceDesc{
	ServiceName: "isula.build.v1.Control",
	HandlerType: (*ControlServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "List",
			Handler:    _Control_List_Handler,
		},
		{
			MethodName: "Version",
			Handler:    _Control_Version_Handler,
		},
		{
			MethodName: "HealthCheck",
			Handler:    _Control_HealthCheck_Handler,
		},
		{
			MethodName: "Login",
			Handler:    _Control_Login_Handler,
		},
		{
			MethodName: "Logout",
			Handler:    _Control_Logout_Handler,
		},
		{
			MethodName: "Tag",
			Handler:    _Control_Tag_Handler,
		},
		{
			MethodName: "Info",
			Handler:    _Control_Info_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Build",
			Handler:       _Control_Build_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "Status",
			Handler:       _Control_Status_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "Remove",
			Handler:       _Control_Remove_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "Load",
			Handler:       _Control_Load_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "Import",
			Handler:       _Control_Import_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "Save",
			Handler:       _Control_Save_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "api/services/control.proto",
}
