// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.23.0
// 	protoc        v3.12.1
// source: chaosdaemon.proto

package pb

import (
	context "context"
	reflect "reflect"
	sync "sync"

	proto "github.com/golang/protobuf/proto"
	empty "github.com/golang/protobuf/ptypes/empty"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

type Chain_Direction int32

const (
	Chain_INPUT  Chain_Direction = 0
	Chain_OUTPUT Chain_Direction = 1
)

// Enum value maps for Chain_Direction.
var (
	Chain_Direction_name = map[int32]string{
		0: "INPUT",
		1: "OUTPUT",
	}
	Chain_Direction_value = map[string]int32{
		"INPUT":  0,
		"OUTPUT": 1,
	}
)

func (x Chain_Direction) Enum() *Chain_Direction {
	p := new(Chain_Direction)
	*p = x
	return p
}

func (x Chain_Direction) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Chain_Direction) Descriptor() protoreflect.EnumDescriptor {
	return file_chaosdaemon_proto_enumTypes[0].Descriptor()
}

func (Chain_Direction) Type() protoreflect.EnumType {
	return &file_chaosdaemon_proto_enumTypes[0]
}

func (x Chain_Direction) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Chain_Direction.Descriptor instead.
func (Chain_Direction) EnumDescriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{17, 0}
}

type ContainerAction_Action int32

const (
	ContainerAction_KILL   ContainerAction_Action = 0
	ContainerAction_GETPID ContainerAction_Action = 1
)

// Enum value maps for ContainerAction_Action.
var (
	ContainerAction_Action_name = map[int32]string{
		0: "KILL",
		1: "GETPID",
	}
	ContainerAction_Action_value = map[string]int32{
		"KILL":   0,
		"GETPID": 1,
	}
)

func (x ContainerAction_Action) Enum() *ContainerAction_Action {
	p := new(ContainerAction_Action)
	*p = x
	return p
}

func (x ContainerAction_Action) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ContainerAction_Action) Descriptor() protoreflect.EnumDescriptor {
	return file_chaosdaemon_proto_enumTypes[1].Descriptor()
}

func (ContainerAction_Action) Type() protoreflect.EnumType {
	return &file_chaosdaemon_proto_enumTypes[1]
}

func (x ContainerAction_Action) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ContainerAction_Action.Descriptor instead.
func (ContainerAction_Action) EnumDescriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{19, 0}
}

type ExecStressRequest_Scope int32

const (
	ExecStressRequest_CONTAINER ExecStressRequest_Scope = 0
	ExecStressRequest_POD       ExecStressRequest_Scope = 1
)

// Enum value maps for ExecStressRequest_Scope.
var (
	ExecStressRequest_Scope_name = map[int32]string{
		0: "CONTAINER",
		1: "POD",
	}
	ExecStressRequest_Scope_value = map[string]int32{
		"CONTAINER": 0,
		"POD":       1,
	}
)

func (x ExecStressRequest_Scope) Enum() *ExecStressRequest_Scope {
	p := new(ExecStressRequest_Scope)
	*p = x
	return p
}

func (x ExecStressRequest_Scope) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ExecStressRequest_Scope) Descriptor() protoreflect.EnumDescriptor {
	return file_chaosdaemon_proto_enumTypes[2].Descriptor()
}

func (ExecStressRequest_Scope) Type() protoreflect.EnumType {
	return &file_chaosdaemon_proto_enumTypes[2]
}

func (x ExecStressRequest_Scope) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ExecStressRequest_Scope.Descriptor instead.
func (ExecStressRequest_Scope) EnumDescriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{20, 0}
}

type Tc_Type int32

const (
	Tc_NETEM     Tc_Type = 0
	Tc_BANDWIDTH Tc_Type = 1
)

// Enum value maps for Tc_Type.
var (
	Tc_Type_name = map[int32]string{
		0: "NETEM",
		1: "BANDWIDTH",
	}
	Tc_Type_value = map[string]int32{
		"NETEM":     0,
		"BANDWIDTH": 1,
	}
)

func (x Tc_Type) Enum() *Tc_Type {
	p := new(Tc_Type)
	*p = x
	return p
}

func (x Tc_Type) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Tc_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_chaosdaemon_proto_enumTypes[3].Descriptor()
}

func (Tc_Type) Type() protoreflect.EnumType {
	return &file_chaosdaemon_proto_enumTypes[3]
}

func (x Tc_Type) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Tc_Type.Descriptor instead.
func (Tc_Type) EnumDescriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{28, 0}
}

type ApplyBlockChaosRequest_Action int32

const (
	ApplyBlockChaosRequest_Delay ApplyBlockChaosRequest_Action = 0
)

// Enum value maps for ApplyBlockChaosRequest_Action.
var (
	ApplyBlockChaosRequest_Action_name = map[int32]string{
		0: "Delay",
	}
	ApplyBlockChaosRequest_Action_value = map[string]int32{
		"Delay": 0,
	}
)

func (x ApplyBlockChaosRequest_Action) Enum() *ApplyBlockChaosRequest_Action {
	p := new(ApplyBlockChaosRequest_Action)
	*p = x
	return p
}

func (x ApplyBlockChaosRequest_Action) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ApplyBlockChaosRequest_Action) Descriptor() protoreflect.EnumDescriptor {
	return file_chaosdaemon_proto_enumTypes[4].Descriptor()
}

func (ApplyBlockChaosRequest_Action) Type() protoreflect.EnumType {
	return &file_chaosdaemon_proto_enumTypes[4]
}

func (x ApplyBlockChaosRequest_Action) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ApplyBlockChaosRequest_Action.Descriptor instead.
func (ApplyBlockChaosRequest_Action) EnumDescriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{32, 0}
}

type TcHandle struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Major uint32 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
	Minor uint32 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"`
}

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

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

func (*TcHandle) ProtoMessage() {}

func (x *TcHandle) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TcHandle.ProtoReflect.Descriptor instead.
func (*TcHandle) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{0}
}

func (x *TcHandle) GetMajor() uint32 {
	if x != nil {
		return x.Major
	}
	return 0
}

func (x *TcHandle) GetMinor() uint32 {
	if x != nil {
		return x.Minor
	}
	return 0
}

type ContainerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Action      *ContainerAction `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"`
	ContainerId string           `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
}

func (x *ContainerRequest) Reset() {
	*x = ContainerRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ContainerRequest) ProtoMessage() {}

func (x *ContainerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ContainerRequest.ProtoReflect.Descriptor instead.
func (*ContainerRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{1}
}

func (x *ContainerRequest) GetAction() *ContainerAction {
	if x != nil {
		return x.Action
	}
	return nil
}

func (x *ContainerRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

type ContainerResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Pid uint32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
}

func (x *ContainerResponse) Reset() {
	*x = ContainerResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ContainerResponse) ProtoMessage() {}

func (x *ContainerResponse) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ContainerResponse.ProtoReflect.Descriptor instead.
func (*ContainerResponse) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{2}
}

func (x *ContainerResponse) GetPid() uint32 {
	if x != nil {
		return x.Pid
	}
	return 0
}

type NetemRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Netem       *Netem    `protobuf:"bytes,1,opt,name=netem,proto3" json:"netem,omitempty"`
	ContainerId string    `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	Handle      *TcHandle `protobuf:"bytes,3,opt,name=handle,proto3" json:"handle,omitempty"`
	Parent      *TcHandle `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
}

func (x *NetemRequest) Reset() {
	*x = NetemRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*NetemRequest) ProtoMessage() {}

func (x *NetemRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NetemRequest.ProtoReflect.Descriptor instead.
func (*NetemRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{3}
}

func (x *NetemRequest) GetNetem() *Netem {
	if x != nil {
		return x.Netem
	}
	return nil
}

func (x *NetemRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *NetemRequest) GetHandle() *TcHandle {
	if x != nil {
		return x.Handle
	}
	return nil
}

func (x *NetemRequest) GetParent() *TcHandle {
	if x != nil {
		return x.Parent
	}
	return nil
}

type Netem struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Time          string    `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
	Jitter        string    `protobuf:"bytes,2,opt,name=jitter,proto3" json:"jitter,omitempty"`
	DelayCorr     float32   `protobuf:"fixed32,3,opt,name=delay_corr,json=delayCorr,proto3" json:"delay_corr,omitempty"`
	Limit         uint32    `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"`
	Loss          float32   `protobuf:"fixed32,5,opt,name=loss,proto3" json:"loss,omitempty"`
	LossCorr      float32   `protobuf:"fixed32,6,opt,name=loss_corr,json=lossCorr,proto3" json:"loss_corr,omitempty"`
	Gap           uint32    `protobuf:"varint,7,opt,name=gap,proto3" json:"gap,omitempty"`
	Duplicate     float32   `protobuf:"fixed32,8,opt,name=duplicate,proto3" json:"duplicate,omitempty"`
	DuplicateCorr float32   `protobuf:"fixed32,9,opt,name=duplicate_corr,json=duplicateCorr,proto3" json:"duplicate_corr,omitempty"`
	Reorder       float32   `protobuf:"fixed32,10,opt,name=reorder,proto3" json:"reorder,omitempty"`
	ReorderCorr   float32   `protobuf:"fixed32,11,opt,name=reorder_corr,json=reorderCorr,proto3" json:"reorder_corr,omitempty"`
	Corrupt       float32   `protobuf:"fixed32,12,opt,name=corrupt,proto3" json:"corrupt,omitempty"`
	CorruptCorr   float32   `protobuf:"fixed32,13,opt,name=corrupt_corr,json=corruptCorr,proto3" json:"corrupt_corr,omitempty"`
	Parent        *TcHandle `protobuf:"bytes,14,opt,name=parent,proto3" json:"parent,omitempty"`
	Handle        *TcHandle `protobuf:"bytes,15,opt,name=handle,proto3" json:"handle,omitempty"`
	Rate          string    `protobuf:"bytes,16,opt,name=rate,proto3" json:"rate,omitempty"`
}

func (x *Netem) Reset() {
	*x = Netem{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Netem) ProtoMessage() {}

func (x *Netem) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Netem.ProtoReflect.Descriptor instead.
func (*Netem) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{4}
}

func (x *Netem) GetTime() string {
	if x != nil {
		return x.Time
	}
	return ""
}

func (x *Netem) GetJitter() string {
	if x != nil {
		return x.Jitter
	}
	return ""
}

func (x *Netem) GetDelayCorr() float32 {
	if x != nil {
		return x.DelayCorr
	}
	return 0
}

func (x *Netem) GetLimit() uint32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *Netem) GetLoss() float32 {
	if x != nil {
		return x.Loss
	}
	return 0
}

func (x *Netem) GetLossCorr() float32 {
	if x != nil {
		return x.LossCorr
	}
	return 0
}

func (x *Netem) GetGap() uint32 {
	if x != nil {
		return x.Gap
	}
	return 0
}

func (x *Netem) GetDuplicate() float32 {
	if x != nil {
		return x.Duplicate
	}
	return 0
}

func (x *Netem) GetDuplicateCorr() float32 {
	if x != nil {
		return x.DuplicateCorr
	}
	return 0
}

func (x *Netem) GetReorder() float32 {
	if x != nil {
		return x.Reorder
	}
	return 0
}

func (x *Netem) GetReorderCorr() float32 {
	if x != nil {
		return x.ReorderCorr
	}
	return 0
}

func (x *Netem) GetCorrupt() float32 {
	if x != nil {
		return x.Corrupt
	}
	return 0
}

func (x *Netem) GetCorruptCorr() float32 {
	if x != nil {
		return x.CorruptCorr
	}
	return 0
}

func (x *Netem) GetParent() *TcHandle {
	if x != nil {
		return x.Parent
	}
	return nil
}

func (x *Netem) GetHandle() *TcHandle {
	if x != nil {
		return x.Handle
	}
	return nil
}

func (x *Netem) GetRate() string {
	if x != nil {
		return x.Rate
	}
	return ""
}

type TbfRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Tbf         *Tbf   `protobuf:"bytes,1,opt,name=tbf,proto3" json:"tbf,omitempty"`
	ContainerId string `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
}

func (x *TbfRequest) Reset() {
	*x = TbfRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TbfRequest) ProtoMessage() {}

func (x *TbfRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TbfRequest.ProtoReflect.Descriptor instead.
func (*TbfRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{5}
}

func (x *TbfRequest) GetTbf() *Tbf {
	if x != nil {
		return x.Tbf
	}
	return nil
}

func (x *TbfRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

type Tbf struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Rate     string `protobuf:"bytes,1,opt,name=rate,proto3" json:"rate,omitempty"`
	Limit    uint32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
	Buffer   uint32 `protobuf:"varint,3,opt,name=buffer,proto3" json:"buffer,omitempty"`
	PeakRate uint64 `protobuf:"varint,4,opt,name=peak_rate,json=peakRate,proto3" json:"peak_rate,omitempty"`
	MinBurst uint32 `protobuf:"varint,5,opt,name=min_burst,json=minBurst,proto3" json:"min_burst,omitempty"`
}

func (x *Tbf) Reset() {
	*x = Tbf{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Tbf) ProtoMessage() {}

func (x *Tbf) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Tbf.ProtoReflect.Descriptor instead.
func (*Tbf) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{6}
}

func (x *Tbf) GetRate() string {
	if x != nil {
		return x.Rate
	}
	return ""
}

func (x *Tbf) GetLimit() uint32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *Tbf) GetBuffer() uint32 {
	if x != nil {
		return x.Buffer
	}
	return 0
}

func (x *Tbf) GetPeakRate() uint64 {
	if x != nil {
		return x.PeakRate
	}
	return 0
}

func (x *Tbf) GetMinBurst() uint32 {
	if x != nil {
		return x.MinBurst
	}
	return 0
}

type QdiscRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Qdisc       *Qdisc `protobuf:"bytes,1,opt,name=qdisc,proto3" json:"qdisc,omitempty"`
	ContainerId string `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
}

func (x *QdiscRequest) Reset() {
	*x = QdiscRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*QdiscRequest) ProtoMessage() {}

func (x *QdiscRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QdiscRequest.ProtoReflect.Descriptor instead.
func (*QdiscRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{7}
}

func (x *QdiscRequest) GetQdisc() *Qdisc {
	if x != nil {
		return x.Qdisc
	}
	return nil
}

func (x *QdiscRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

type Qdisc struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Parent *TcHandle `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	Handle *TcHandle `protobuf:"bytes,2,opt,name=handle,proto3" json:"handle,omitempty"`
	Type   string    `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	Args   []string  `protobuf:"bytes,4,rep,name=args,proto3" json:"args,omitempty"`
}

func (x *Qdisc) Reset() {
	*x = Qdisc{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Qdisc) ProtoMessage() {}

func (x *Qdisc) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Qdisc.ProtoReflect.Descriptor instead.
func (*Qdisc) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{8}
}

func (x *Qdisc) GetParent() *TcHandle {
	if x != nil {
		return x.Parent
	}
	return nil
}

func (x *Qdisc) GetHandle() *TcHandle {
	if x != nil {
		return x.Handle
	}
	return nil
}

func (x *Qdisc) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *Qdisc) GetArgs() []string {
	if x != nil {
		return x.Args
	}
	return nil
}

type EmatchFilterRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Filter      *EmatchFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	ContainerId string        `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
}

func (x *EmatchFilterRequest) Reset() {
	*x = EmatchFilterRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*EmatchFilterRequest) ProtoMessage() {}

func (x *EmatchFilterRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EmatchFilterRequest.ProtoReflect.Descriptor instead.
func (*EmatchFilterRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{9}
}

func (x *EmatchFilterRequest) GetFilter() *EmatchFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *EmatchFilterRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

type EmatchFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Match   string    `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
	Parent  *TcHandle `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"`
	Classid *TcHandle `protobuf:"bytes,3,opt,name=classid,proto3" json:"classid,omitempty"`
}

func (x *EmatchFilter) Reset() {
	*x = EmatchFilter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*EmatchFilter) ProtoMessage() {}

func (x *EmatchFilter) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EmatchFilter.ProtoReflect.Descriptor instead.
func (*EmatchFilter) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{10}
}

func (x *EmatchFilter) GetMatch() string {
	if x != nil {
		return x.Match
	}
	return ""
}

func (x *EmatchFilter) GetParent() *TcHandle {
	if x != nil {
		return x.Parent
	}
	return nil
}

func (x *EmatchFilter) GetClassid() *TcHandle {
	if x != nil {
		return x.Classid
	}
	return nil
}

type TcFilterRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Filter      *TcFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	ContainerId string    `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
}

func (x *TcFilterRequest) Reset() {
	*x = TcFilterRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TcFilterRequest) ProtoMessage() {}

func (x *TcFilterRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TcFilterRequest.ProtoReflect.Descriptor instead.
func (*TcFilterRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{11}
}

func (x *TcFilterRequest) GetFilter() *TcFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *TcFilterRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

type TcFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Parent *TcHandle `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
}

func (x *TcFilter) Reset() {
	*x = TcFilter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TcFilter) ProtoMessage() {}

func (x *TcFilter) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TcFilter.ProtoReflect.Descriptor instead.
func (*TcFilter) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{12}
}

func (x *TcFilter) GetParent() *TcHandle {
	if x != nil {
		return x.Parent
	}
	return nil
}

type IPSetsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Ipsets      []*IPSet `protobuf:"bytes,1,rep,name=ipsets,proto3" json:"ipsets,omitempty"`
	ContainerId string   `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	EnterNS     bool     `protobuf:"varint,3,opt,name=enterNS,proto3" json:"enterNS,omitempty"`
}

func (x *IPSetsRequest) Reset() {
	*x = IPSetsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*IPSetsRequest) ProtoMessage() {}

func (x *IPSetsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IPSetsRequest.ProtoReflect.Descriptor instead.
func (*IPSetsRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{13}
}

func (x *IPSetsRequest) GetIpsets() []*IPSet {
	if x != nil {
		return x.Ipsets
	}
	return nil
}

func (x *IPSetsRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *IPSetsRequest) GetEnterNS() bool {
	if x != nil {
		return x.EnterNS
	}
	return false
}

type IPSet struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name         string         `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Cidrs        []string       `protobuf:"bytes,2,rep,name=cidrs,proto3" json:"cidrs,omitempty"`
	CidrAndPorts []*CidrAndPort `protobuf:"bytes,3,rep,name=cidr_and_ports,json=cidrAndPorts,proto3" json:"cidr_and_ports,omitempty"`
	SetNames     []string       `protobuf:"bytes,4,rep,name=set_names,json=setNames,proto3" json:"set_names,omitempty"`
	Type         string         `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"`
}

func (x *IPSet) Reset() {
	*x = IPSet{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*IPSet) ProtoMessage() {}

func (x *IPSet) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IPSet.ProtoReflect.Descriptor instead.
func (*IPSet) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{14}
}

func (x *IPSet) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *IPSet) GetCidrs() []string {
	if x != nil {
		return x.Cidrs
	}
	return nil
}

func (x *IPSet) GetCidrAndPorts() []*CidrAndPort {
	if x != nil {
		return x.CidrAndPorts
	}
	return nil
}

func (x *IPSet) GetSetNames() []string {
	if x != nil {
		return x.SetNames
	}
	return nil
}

func (x *IPSet) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

type CidrAndPort struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cidr string `protobuf:"bytes,1,opt,name=cidr,proto3" json:"cidr,omitempty"`
	Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
}

func (x *CidrAndPort) Reset() {
	*x = CidrAndPort{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CidrAndPort) ProtoMessage() {}

func (x *CidrAndPort) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CidrAndPort.ProtoReflect.Descriptor instead.
func (*CidrAndPort) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{15}
}

func (x *CidrAndPort) GetCidr() string {
	if x != nil {
		return x.Cidr
	}
	return ""
}

func (x *CidrAndPort) GetPort() uint32 {
	if x != nil {
		return x.Port
	}
	return 0
}

type IptablesChainsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Chains      []*Chain `protobuf:"bytes,1,rep,name=chains,proto3" json:"chains,omitempty"`
	ContainerId string   `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	EnterNS     bool     `protobuf:"varint,3,opt,name=enterNS,proto3" json:"enterNS,omitempty"`
}

func (x *IptablesChainsRequest) Reset() {
	*x = IptablesChainsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*IptablesChainsRequest) ProtoMessage() {}

func (x *IptablesChainsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use IptablesChainsRequest.ProtoReflect.Descriptor instead.
func (*IptablesChainsRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{16}
}

func (x *IptablesChainsRequest) GetChains() []*Chain {
	if x != nil {
		return x.Chains
	}
	return nil
}

func (x *IptablesChainsRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *IptablesChainsRequest) GetEnterNS() bool {
	if x != nil {
		return x.EnterNS
	}
	return false
}

type Chain struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Name             string          `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Direction        Chain_Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=pb.Chain_Direction" json:"direction,omitempty"`
	Ipsets           []string        `protobuf:"bytes,3,rep,name=ipsets,proto3" json:"ipsets,omitempty"`
	Target           string          `protobuf:"bytes,4,opt,name=target,proto3" json:"target,omitempty"`
	Protocol         string          `protobuf:"bytes,5,opt,name=protocol,proto3" json:"protocol,omitempty"`
	SourcePorts      string          `protobuf:"bytes,6,opt,name=source_ports,json=sourcePorts,proto3" json:"source_ports,omitempty"`
	DestinationPorts string          `protobuf:"bytes,7,opt,name=destination_ports,json=destinationPorts,proto3" json:"destination_ports,omitempty"`
	TcpFlags         string          `protobuf:"bytes,8,opt,name=tcp_flags,json=tcpFlags,proto3" json:"tcp_flags,omitempty"`
	Device           string          `protobuf:"bytes,9,opt,name=device,proto3" json:"device,omitempty"`
}

func (x *Chain) Reset() {
	*x = Chain{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Chain) ProtoMessage() {}

func (x *Chain) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Chain.ProtoReflect.Descriptor instead.
func (*Chain) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{17}
}

func (x *Chain) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Chain) GetDirection() Chain_Direction {
	if x != nil {
		return x.Direction
	}
	return Chain_INPUT
}

func (x *Chain) GetIpsets() []string {
	if x != nil {
		return x.Ipsets
	}
	return nil
}

func (x *Chain) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *Chain) GetProtocol() string {
	if x != nil {
		return x.Protocol
	}
	return ""
}

func (x *Chain) GetSourcePorts() string {
	if x != nil {
		return x.SourcePorts
	}
	return ""
}

func (x *Chain) GetDestinationPorts() string {
	if x != nil {
		return x.DestinationPorts
	}
	return ""
}

func (x *Chain) GetTcpFlags() string {
	if x != nil {
		return x.TcpFlags
	}
	return ""
}

func (x *Chain) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

type TimeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ContainerId      string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	Sec              int64  `protobuf:"varint,2,opt,name=sec,proto3" json:"sec,omitempty"`
	Nsec             int64  `protobuf:"varint,3,opt,name=nsec,proto3" json:"nsec,omitempty"`
	ClkIdsMask       uint64 `protobuf:"varint,4,opt,name=clk_ids_mask,json=clkIdsMask,proto3" json:"clk_ids_mask,omitempty"`
	Uid              string `protobuf:"bytes,5,opt,name=uid,proto3" json:"uid,omitempty"`
	PodContainerName string `protobuf:"bytes,6,opt,name=pod_container_name,json=podContainerName,proto3" json:"pod_container_name,omitempty"`
}

func (x *TimeRequest) Reset() {
	*x = TimeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TimeRequest) ProtoMessage() {}

func (x *TimeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TimeRequest.ProtoReflect.Descriptor instead.
func (*TimeRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{18}
}

func (x *TimeRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *TimeRequest) GetSec() int64 {
	if x != nil {
		return x.Sec
	}
	return 0
}

func (x *TimeRequest) GetNsec() int64 {
	if x != nil {
		return x.Nsec
	}
	return 0
}

func (x *TimeRequest) GetClkIdsMask() uint64 {
	if x != nil {
		return x.ClkIdsMask
	}
	return 0
}

func (x *TimeRequest) GetUid() string {
	if x != nil {
		return x.Uid
	}
	return ""
}

func (x *TimeRequest) GetPodContainerName() string {
	if x != nil {
		return x.PodContainerName
	}
	return ""
}

type ContainerAction struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Action ContainerAction_Action `protobuf:"varint,1,opt,name=action,proto3,enum=pb.ContainerAction_Action" json:"action,omitempty"`
}

func (x *ContainerAction) Reset() {
	*x = ContainerAction{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ContainerAction) ProtoMessage() {}

func (x *ContainerAction) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ContainerAction.ProtoReflect.Descriptor instead.
func (*ContainerAction) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{19}
}

func (x *ContainerAction) GetAction() ContainerAction_Action {
	if x != nil {
		return x.Action
	}
	return ContainerAction_KILL
}

type ExecStressRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Scope           ExecStressRequest_Scope `protobuf:"varint,1,opt,name=scope,proto3,enum=pb.ExecStressRequest_Scope" json:"scope,omitempty"`
	Target          string                  `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
	CpuStressors    string                  `protobuf:"bytes,3,opt,name=cpuStressors,proto3" json:"cpuStressors,omitempty"`
	EnterNS         bool                    `protobuf:"varint,4,opt,name=enterNS,proto3" json:"enterNS,omitempty"`
	MemoryStressors string                  `protobuf:"bytes,5,opt,name=memoryStressors,proto3" json:"memoryStressors,omitempty"`
	OomScoreAdj     int32                   `protobuf:"varint,7,opt,name=oomScoreAdj,proto3" json:"oomScoreAdj,omitempty"`
}

func (x *ExecStressRequest) Reset() {
	*x = ExecStressRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ExecStressRequest) ProtoMessage() {}

func (x *ExecStressRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ExecStressRequest.ProtoReflect.Descriptor instead.
func (*ExecStressRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{20}
}

func (x *ExecStressRequest) GetScope() ExecStressRequest_Scope {
	if x != nil {
		return x.Scope
	}
	return ExecStressRequest_CONTAINER
}

func (x *ExecStressRequest) GetTarget() string {
	if x != nil {
		return x.Target
	}
	return ""
}

func (x *ExecStressRequest) GetCpuStressors() string {
	if x != nil {
		return x.CpuStressors
	}
	return ""
}

func (x *ExecStressRequest) GetEnterNS() bool {
	if x != nil {
		return x.EnterNS
	}
	return false
}

func (x *ExecStressRequest) GetMemoryStressors() string {
	if x != nil {
		return x.MemoryStressors
	}
	return ""
}

func (x *ExecStressRequest) GetOomScoreAdj() int32 {
	if x != nil {
		return x.OomScoreAdj
	}
	return 0
}

type ExecStressResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CpuInstance       string `protobuf:"bytes,1,opt,name=cpuInstance,proto3" json:"cpuInstance,omitempty"`
	CpuStartTime      int64  `protobuf:"varint,2,opt,name=cpuStartTime,proto3" json:"cpuStartTime,omitempty"`
	MemoryInstance    string `protobuf:"bytes,3,opt,name=memoryInstance,proto3" json:"memoryInstance,omitempty"`
	MemoryStartTime   int64  `protobuf:"varint,4,opt,name=memoryStartTime,proto3" json:"memoryStartTime,omitempty"`
	CpuInstanceUid    string `protobuf:"bytes,5,opt,name=cpuInstanceUid,proto3" json:"cpuInstanceUid,omitempty"`
	MemoryInstanceUid string `protobuf:"bytes,6,opt,name=memoryInstanceUid,proto3" json:"memoryInstanceUid,omitempty"`
}

func (x *ExecStressResponse) Reset() {
	*x = ExecStressResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ExecStressResponse) ProtoMessage() {}

func (x *ExecStressResponse) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ExecStressResponse.ProtoReflect.Descriptor instead.
func (*ExecStressResponse) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{21}
}

func (x *ExecStressResponse) GetCpuInstance() string {
	if x != nil {
		return x.CpuInstance
	}
	return ""
}

func (x *ExecStressResponse) GetCpuStartTime() int64 {
	if x != nil {
		return x.CpuStartTime
	}
	return 0
}

func (x *ExecStressResponse) GetMemoryInstance() string {
	if x != nil {
		return x.MemoryInstance
	}
	return ""
}

func (x *ExecStressResponse) GetMemoryStartTime() int64 {
	if x != nil {
		return x.MemoryStartTime
	}
	return 0
}

func (x *ExecStressResponse) GetCpuInstanceUid() string {
	if x != nil {
		return x.CpuInstanceUid
	}
	return ""
}

func (x *ExecStressResponse) GetMemoryInstanceUid() string {
	if x != nil {
		return x.MemoryInstanceUid
	}
	return ""
}

type CancelStressRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CpuInstance       string `protobuf:"bytes,1,opt,name=cpuInstance,proto3" json:"cpuInstance,omitempty"`
	CpuStartTime      int64  `protobuf:"varint,2,opt,name=cpuStartTime,proto3" json:"cpuStartTime,omitempty"`
	MemoryInstance    string `protobuf:"bytes,3,opt,name=memoryInstance,proto3" json:"memoryInstance,omitempty"`
	MemoryStartTime   int64  `protobuf:"varint,4,opt,name=memoryStartTime,proto3" json:"memoryStartTime,omitempty"`
	CpuInstanceUid    string `protobuf:"bytes,5,opt,name=cpuInstanceUid,proto3" json:"cpuInstanceUid,omitempty"`
	MemoryInstanceUid string `protobuf:"bytes,6,opt,name=memoryInstanceUid,proto3" json:"memoryInstanceUid,omitempty"`
}

func (x *CancelStressRequest) Reset() {
	*x = CancelStressRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*CancelStressRequest) ProtoMessage() {}

func (x *CancelStressRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CancelStressRequest.ProtoReflect.Descriptor instead.
func (*CancelStressRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{22}
}

func (x *CancelStressRequest) GetCpuInstance() string {
	if x != nil {
		return x.CpuInstance
	}
	return ""
}

func (x *CancelStressRequest) GetCpuStartTime() int64 {
	if x != nil {
		return x.CpuStartTime
	}
	return 0
}

func (x *CancelStressRequest) GetMemoryInstance() string {
	if x != nil {
		return x.MemoryInstance
	}
	return ""
}

func (x *CancelStressRequest) GetMemoryStartTime() int64 {
	if x != nil {
		return x.MemoryStartTime
	}
	return 0
}

func (x *CancelStressRequest) GetCpuInstanceUid() string {
	if x != nil {
		return x.CpuInstanceUid
	}
	return ""
}

func (x *CancelStressRequest) GetMemoryInstanceUid() string {
	if x != nil {
		return x.MemoryInstanceUid
	}
	return ""
}

type ApplyIOChaosRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Actions     string `protobuf:"bytes,1,opt,name=actions,proto3" json:"actions,omitempty"`
	Volume      string `protobuf:"bytes,2,opt,name=volume,proto3" json:"volume,omitempty"`
	ContainerId string `protobuf:"bytes,3,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	Instance    int64  `protobuf:"varint,4,opt,name=instance,proto3" json:"instance,omitempty"`
	StartTime   int64  `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime,omitempty"`
	EnterNS     bool   `protobuf:"varint,6,opt,name=enterNS,proto3" json:"enterNS,omitempty"`
	InstanceUid string `protobuf:"bytes,7,opt,name=instance_uid,json=instanceUid,proto3" json:"instance_uid,omitempty"`
}

func (x *ApplyIOChaosRequest) Reset() {
	*x = ApplyIOChaosRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApplyIOChaosRequest) ProtoMessage() {}

func (x *ApplyIOChaosRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[23]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ApplyIOChaosRequest.ProtoReflect.Descriptor instead.
func (*ApplyIOChaosRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{23}
}

func (x *ApplyIOChaosRequest) GetActions() string {
	if x != nil {
		return x.Actions
	}
	return ""
}

func (x *ApplyIOChaosRequest) GetVolume() string {
	if x != nil {
		return x.Volume
	}
	return ""
}

func (x *ApplyIOChaosRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *ApplyIOChaosRequest) GetInstance() int64 {
	if x != nil {
		return x.Instance
	}
	return 0
}

func (x *ApplyIOChaosRequest) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *ApplyIOChaosRequest) GetEnterNS() bool {
	if x != nil {
		return x.EnterNS
	}
	return false
}

func (x *ApplyIOChaosRequest) GetInstanceUid() string {
	if x != nil {
		return x.InstanceUid
	}
	return ""
}

type ApplyIOChaosResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Instance    int64  `protobuf:"varint,1,opt,name=instance,proto3" json:"instance,omitempty"`
	StartTime   int64  `protobuf:"varint,2,opt,name=startTime,proto3" json:"startTime,omitempty"`
	InstanceUid string `protobuf:"bytes,3,opt,name=instance_uid,json=instanceUid,proto3" json:"instance_uid,omitempty"`
}

func (x *ApplyIOChaosResponse) Reset() {
	*x = ApplyIOChaosResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApplyIOChaosResponse) ProtoMessage() {}

func (x *ApplyIOChaosResponse) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ApplyIOChaosResponse.ProtoReflect.Descriptor instead.
func (*ApplyIOChaosResponse) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{24}
}

func (x *ApplyIOChaosResponse) GetInstance() int64 {
	if x != nil {
		return x.Instance
	}
	return 0
}

func (x *ApplyIOChaosResponse) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *ApplyIOChaosResponse) GetInstanceUid() string {
	if x != nil {
		return x.InstanceUid
	}
	return ""
}

type ApplyHttpChaosRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Rules       string   `protobuf:"bytes,1,opt,name=rules,proto3" json:"rules,omitempty"`
	ProxyPorts  []uint32 `protobuf:"varint,2,rep,packed,name=proxy_ports,json=proxyPorts,proto3" json:"proxy_ports,omitempty"`
	ContainerId string   `protobuf:"bytes,3,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	Instance    int64    `protobuf:"varint,4,opt,name=instance,proto3" json:"instance,omitempty"`
	StartTime   int64    `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime,omitempty"`
	EnterNS     bool     `protobuf:"varint,6,opt,name=enterNS,proto3" json:"enterNS,omitempty"`
	InstanceUid string   `protobuf:"bytes,7,opt,name=instance_uid,json=instanceUid,proto3" json:"instance_uid,omitempty"`
	Tls         string   `protobuf:"bytes,8,opt,name=tls,proto3" json:"tls,omitempty"`
}

func (x *ApplyHttpChaosRequest) Reset() {
	*x = ApplyHttpChaosRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApplyHttpChaosRequest) ProtoMessage() {}

func (x *ApplyHttpChaosRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[25]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ApplyHttpChaosRequest.ProtoReflect.Descriptor instead.
func (*ApplyHttpChaosRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{25}
}

func (x *ApplyHttpChaosRequest) GetRules() string {
	if x != nil {
		return x.Rules
	}
	return ""
}

func (x *ApplyHttpChaosRequest) GetProxyPorts() []uint32 {
	if x != nil {
		return x.ProxyPorts
	}
	return nil
}

func (x *ApplyHttpChaosRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *ApplyHttpChaosRequest) GetInstance() int64 {
	if x != nil {
		return x.Instance
	}
	return 0
}

func (x *ApplyHttpChaosRequest) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *ApplyHttpChaosRequest) GetEnterNS() bool {
	if x != nil {
		return x.EnterNS
	}
	return false
}

func (x *ApplyHttpChaosRequest) GetInstanceUid() string {
	if x != nil {
		return x.InstanceUid
	}
	return ""
}

func (x *ApplyHttpChaosRequest) GetTls() string {
	if x != nil {
		return x.Tls
	}
	return ""
}

type ApplyHttpChaosResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Instance    int64  `protobuf:"varint,1,opt,name=instance,proto3" json:"instance,omitempty"`
	StartTime   int64  `protobuf:"varint,2,opt,name=startTime,proto3" json:"startTime,omitempty"`
	StatusCode  int32  `protobuf:"varint,3,opt,name=statusCode,proto3" json:"statusCode,omitempty"`
	Error       string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"`
	InstanceUid string `protobuf:"bytes,5,opt,name=instance_uid,json=instanceUid,proto3" json:"instance_uid,omitempty"`
}

func (x *ApplyHttpChaosResponse) Reset() {
	*x = ApplyHttpChaosResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApplyHttpChaosResponse) ProtoMessage() {}

func (x *ApplyHttpChaosResponse) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[26]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ApplyHttpChaosResponse.ProtoReflect.Descriptor instead.
func (*ApplyHttpChaosResponse) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{26}
}

func (x *ApplyHttpChaosResponse) GetInstance() int64 {
	if x != nil {
		return x.Instance
	}
	return 0
}

func (x *ApplyHttpChaosResponse) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *ApplyHttpChaosResponse) GetStatusCode() int32 {
	if x != nil {
		return x.StatusCode
	}
	return 0
}

func (x *ApplyHttpChaosResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *ApplyHttpChaosResponse) GetInstanceUid() string {
	if x != nil {
		return x.InstanceUid
	}
	return ""
}

type TcsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Tcs         []*Tc  `protobuf:"bytes,1,rep,name=tcs,proto3" json:"tcs,omitempty"`
	ContainerId string `protobuf:"bytes,2,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	EnterNS     bool   `protobuf:"varint,4,opt,name=enterNS,proto3" json:"enterNS,omitempty"`
}

func (x *TcsRequest) Reset() {
	*x = TcsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TcsRequest) ProtoMessage() {}

func (x *TcsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[27]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TcsRequest.ProtoReflect.Descriptor instead.
func (*TcsRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{27}
}

func (x *TcsRequest) GetTcs() []*Tc {
	if x != nil {
		return x.Tcs
	}
	return nil
}

func (x *TcsRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *TcsRequest) GetEnterNS() bool {
	if x != nil {
		return x.EnterNS
	}
	return false
}

type Tc struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Type       Tc_Type `protobuf:"varint,1,opt,name=type,proto3,enum=pb.Tc_Type" json:"type,omitempty"`
	Netem      *Netem  `protobuf:"bytes,2,opt,name=netem,proto3" json:"netem,omitempty"`
	Tbf        *Tbf    `protobuf:"bytes,3,opt,name=tbf,proto3" json:"tbf,omitempty"`
	Ipset      string  `protobuf:"bytes,4,opt,name=ipset,proto3" json:"ipset,omitempty"`
	Protocol   string  `protobuf:"bytes,5,opt,name=protocol,proto3" json:"protocol,omitempty"`
	SourcePort string  `protobuf:"bytes,6,opt,name=source_port,json=sourcePort,proto3" json:"source_port,omitempty"`
	EgressPort string  `protobuf:"bytes,7,opt,name=egress_port,json=egressPort,proto3" json:"egress_port,omitempty"`
	Device     string  `protobuf:"bytes,9,opt,name=device,proto3" json:"device,omitempty"`
}

func (x *Tc) Reset() {
	*x = Tc{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Tc) ProtoMessage() {}

func (x *Tc) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[28]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Tc.ProtoReflect.Descriptor instead.
func (*Tc) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{28}
}

func (x *Tc) GetType() Tc_Type {
	if x != nil {
		return x.Type
	}
	return Tc_NETEM
}

func (x *Tc) GetNetem() *Netem {
	if x != nil {
		return x.Netem
	}
	return nil
}

func (x *Tc) GetTbf() *Tbf {
	if x != nil {
		return x.Tbf
	}
	return nil
}

func (x *Tc) GetIpset() string {
	if x != nil {
		return x.Ipset
	}
	return ""
}

func (x *Tc) GetProtocol() string {
	if x != nil {
		return x.Protocol
	}
	return ""
}

func (x *Tc) GetSourcePort() string {
	if x != nil {
		return x.SourcePort
	}
	return ""
}

func (x *Tc) GetEgressPort() string {
	if x != nil {
		return x.EgressPort
	}
	return ""
}

func (x *Tc) GetDevice() string {
	if x != nil {
		return x.Device
	}
	return ""
}

type SetDNSServerRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	DnsServer   string `protobuf:"bytes,2,opt,name=dns_server,json=dnsServer,proto3" json:"dns_server,omitempty"`
	Enable      bool   `protobuf:"varint,3,opt,name=enable,proto3" json:"enable,omitempty"`
	EnterNS     bool   `protobuf:"varint,4,opt,name=enterNS,proto3" json:"enterNS,omitempty"`
}

func (x *SetDNSServerRequest) Reset() {
	*x = SetDNSServerRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*SetDNSServerRequest) ProtoMessage() {}

func (x *SetDNSServerRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[29]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SetDNSServerRequest.ProtoReflect.Descriptor instead.
func (*SetDNSServerRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{29}
}

func (x *SetDNSServerRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *SetDNSServerRequest) GetDnsServer() string {
	if x != nil {
		return x.DnsServer
	}
	return ""
}

func (x *SetDNSServerRequest) GetEnable() bool {
	if x != nil {
		return x.Enable
	}
	return false
}

func (x *SetDNSServerRequest) GetEnterNS() bool {
	if x != nil {
		return x.EnterNS
	}
	return false
}

type InstallJVMRulesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	Rule        string `protobuf:"bytes,2,opt,name=rule,proto3" json:"rule,omitempty"`
	Port        int32  `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	EnterNS     bool   `protobuf:"varint,4,opt,name=enterNS,proto3" json:"enterNS,omitempty"`
}

func (x *InstallJVMRulesRequest) Reset() {
	*x = InstallJVMRulesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*InstallJVMRulesRequest) ProtoMessage() {}

func (x *InstallJVMRulesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[30]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InstallJVMRulesRequest.ProtoReflect.Descriptor instead.
func (*InstallJVMRulesRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{30}
}

func (x *InstallJVMRulesRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *InstallJVMRulesRequest) GetRule() string {
	if x != nil {
		return x.Rule
	}
	return ""
}

func (x *InstallJVMRulesRequest) GetPort() int32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *InstallJVMRulesRequest) GetEnterNS() bool {
	if x != nil {
		return x.EnterNS
	}
	return false
}

type UninstallJVMRulesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	Rule        string `protobuf:"bytes,2,opt,name=rule,proto3" json:"rule,omitempty"`
	Port        int32  `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"`
	EnterNS     bool   `protobuf:"varint,4,opt,name=enterNS,proto3" json:"enterNS,omitempty"`
}

func (x *UninstallJVMRulesRequest) Reset() {
	*x = UninstallJVMRulesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*UninstallJVMRulesRequest) ProtoMessage() {}

func (x *UninstallJVMRulesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[31]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UninstallJVMRulesRequest.ProtoReflect.Descriptor instead.
func (*UninstallJVMRulesRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{31}
}

func (x *UninstallJVMRulesRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *UninstallJVMRulesRequest) GetRule() string {
	if x != nil {
		return x.Rule
	}
	return ""
}

func (x *UninstallJVMRulesRequest) GetPort() int32 {
	if x != nil {
		return x.Port
	}
	return 0
}

func (x *UninstallJVMRulesRequest) GetEnterNS() bool {
	if x != nil {
		return x.EnterNS
	}
	return false
}

type ApplyBlockChaosRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ContainerId string                        `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
	VolumePath  string                        `protobuf:"bytes,2,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"`
	Action      ApplyBlockChaosRequest_Action `protobuf:"varint,3,opt,name=action,proto3,enum=pb.ApplyBlockChaosRequest_Action" json:"action,omitempty"`
	Delay       *BlockDelaySpec               `protobuf:"bytes,5,opt,name=delay,proto3" json:"delay,omitempty"`
	EnterNS     bool                          `protobuf:"varint,6,opt,name=enterNS,proto3" json:"enterNS,omitempty"`
}

func (x *ApplyBlockChaosRequest) Reset() {
	*x = ApplyBlockChaosRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApplyBlockChaosRequest) ProtoMessage() {}

func (x *ApplyBlockChaosRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[32]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ApplyBlockChaosRequest.ProtoReflect.Descriptor instead.
func (*ApplyBlockChaosRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{32}
}

func (x *ApplyBlockChaosRequest) GetContainerId() string {
	if x != nil {
		return x.ContainerId
	}
	return ""
}

func (x *ApplyBlockChaosRequest) GetVolumePath() string {
	if x != nil {
		return x.VolumePath
	}
	return ""
}

func (x *ApplyBlockChaosRequest) GetAction() ApplyBlockChaosRequest_Action {
	if x != nil {
		return x.Action
	}
	return ApplyBlockChaosRequest_Delay
}

func (x *ApplyBlockChaosRequest) GetDelay() *BlockDelaySpec {
	if x != nil {
		return x.Delay
	}
	return nil
}

func (x *ApplyBlockChaosRequest) GetEnterNS() bool {
	if x != nil {
		return x.EnterNS
	}
	return false
}

type BlockDelaySpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Delay       int64   `protobuf:"varint,1,opt,name=delay,proto3" json:"delay,omitempty"`
	Correlation float64 `protobuf:"fixed64,2,opt,name=correlation,proto3" json:"correlation,omitempty"`
	Jitter      int64   `protobuf:"varint,3,opt,name=jitter,proto3" json:"jitter,omitempty"`
}

func (x *BlockDelaySpec) Reset() {
	*x = BlockDelaySpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BlockDelaySpec) ProtoMessage() {}

func (x *BlockDelaySpec) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[33]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlockDelaySpec.ProtoReflect.Descriptor instead.
func (*BlockDelaySpec) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{33}
}

func (x *BlockDelaySpec) GetDelay() int64 {
	if x != nil {
		return x.Delay
	}
	return 0
}

func (x *BlockDelaySpec) GetCorrelation() float64 {
	if x != nil {
		return x.Correlation
	}
	return 0
}

func (x *BlockDelaySpec) GetJitter() int64 {
	if x != nil {
		return x.Jitter
	}
	return 0
}

type BlockLimitSpec struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Quota    uint64 `protobuf:"varint,1,opt,name=quota,proto3" json:"quota,omitempty"`
	PeriodUs uint64 `protobuf:"varint,2,opt,name=period_us,json=periodUs,proto3" json:"period_us,omitempty"`
}

func (x *BlockLimitSpec) Reset() {
	*x = BlockLimitSpec{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*BlockLimitSpec) ProtoMessage() {}

func (x *BlockLimitSpec) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[34]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlockLimitSpec.ProtoReflect.Descriptor instead.
func (*BlockLimitSpec) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{34}
}

func (x *BlockLimitSpec) GetQuota() uint64 {
	if x != nil {
		return x.Quota
	}
	return 0
}

func (x *BlockLimitSpec) GetPeriodUs() uint64 {
	if x != nil {
		return x.PeriodUs
	}
	return 0
}

type ApplyBlockChaosResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InjectionId int32 `protobuf:"varint,1,opt,name=injection_id,json=injectionId,proto3" json:"injection_id,omitempty"`
}

func (x *ApplyBlockChaosResponse) Reset() {
	*x = ApplyBlockChaosResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ApplyBlockChaosResponse) ProtoMessage() {}

func (x *ApplyBlockChaosResponse) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[35]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ApplyBlockChaosResponse.ProtoReflect.Descriptor instead.
func (*ApplyBlockChaosResponse) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{35}
}

func (x *ApplyBlockChaosResponse) GetInjectionId() int32 {
	if x != nil {
		return x.InjectionId
	}
	return 0
}

type RecoverBlockChaosRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InjectionId int32 `protobuf:"varint,1,opt,name=injection_id,json=injectionId,proto3" json:"injection_id,omitempty"`
}

func (x *RecoverBlockChaosRequest) Reset() {
	*x = RecoverBlockChaosRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chaosdaemon_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*RecoverBlockChaosRequest) ProtoMessage() {}

func (x *RecoverBlockChaosRequest) ProtoReflect() protoreflect.Message {
	mi := &file_chaosdaemon_proto_msgTypes[36]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RecoverBlockChaosRequest.ProtoReflect.Descriptor instead.
func (*RecoverBlockChaosRequest) Descriptor() ([]byte, []int) {
	return file_chaosdaemon_proto_rawDescGZIP(), []int{36}
}

func (x *RecoverBlockChaosRequest) GetInjectionId() int32 {
	if x != nil {
		return x.InjectionId
	}
	return 0
}

var File_chaosdaemon_proto protoreflect.FileDescriptor

var file_chaosdaemon_proto_rawDesc = []byte{
	0x0a, 0x11, 0x63, 0x68, 0x61, 0x6f, 0x73, 0x64, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x22, 0x36, 0x0a, 0x08, 0x54, 0x63, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
	0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x22, 0x62, 0x0a, 0x10,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x2b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x41,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a,
	0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64,
	0x22, 0x25, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x22, 0x9e, 0x01, 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x65,
	0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x05, 0x6e, 0x65, 0x74, 0x65,
	0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74,
	0x65, 0x6d, 0x52, 0x05, 0x6e, 0x65, 0x74, 0x65, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e,
	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x06,
	0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70,
	0x62, 0x2e, 0x54, 0x63, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64,
	0x6c, 0x65, 0x12, 0x24, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
	0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0xca, 0x03, 0x0a, 0x05, 0x4e, 0x65, 0x74,
	0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x1d,
	0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x72, 0x72, 0x12, 0x14, 0x0a,
	0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69,
	0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x02, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x73, 0x73, 0x5f,
	0x63, 0x6f, 0x72, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x6f, 0x73, 0x73,
	0x43, 0x6f, 0x72, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x03, 0x67, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x64, 0x75, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x64, 0x75,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x72, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72,
	0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x72, 0x65,
	0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x5f, 0x63, 0x6f, 0x72, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x72, 0x65, 0x6f,
	0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x72, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x72, 0x72,
	0x75, 0x70, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x63, 0x6f, 0x72, 0x72, 0x75,
	0x70, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x72, 0x75, 0x70, 0x74, 0x5f, 0x63, 0x6f,
	0x72, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x72, 0x75, 0x70,
	0x74, 0x43, 0x6f, 0x72, 0x72, 0x12, 0x24, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63, 0x48, 0x61, 0x6e,
	0x64, 0x6c, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x06, 0x68,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62,
	0x2e, 0x54, 0x63, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x72, 0x61, 0x74, 0x65, 0x22, 0x4a, 0x0a, 0x0a, 0x54, 0x62, 0x66, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x74, 0x62, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x07, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x62, 0x66, 0x52, 0x03, 0x74, 0x62, 0x66, 0x12, 0x21,
	0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49,
	0x64, 0x22, 0x81, 0x01, 0x0a, 0x03, 0x54, 0x62, 0x66, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a,
	0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69,
	0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70,
	0x65, 0x61, 0x6b, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08,
	0x70, 0x65, 0x61, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f,
	0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x69, 0x6e,
	0x42, 0x75, 0x72, 0x73, 0x74, 0x22, 0x52, 0x0a, 0x0c, 0x51, 0x64, 0x69, 0x73, 0x63, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x05, 0x71, 0x64, 0x69, 0x73, 0x63, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x51, 0x64, 0x69, 0x73, 0x63, 0x52,
	0x05, 0x71, 0x64, 0x69, 0x73, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
	0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f,
	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x05, 0x51, 0x64, 0x69,
	0x73, 0x63, 0x12, 0x24, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65,
	0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x06, 0x68, 0x61, 0x6e, 0x64,
	0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63,
	0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x62, 0x0a, 0x13, 0x45, 0x6d, 0x61, 0x74, 0x63, 0x68,
	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a,
	0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
	0x70, 0x62, 0x2e, 0x45, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52,
	0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61,
	0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x72, 0x0a, 0x0c, 0x45, 0x6d,
	0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61,
	0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68,
	0x12, 0x24, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06,
	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69,
	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63, 0x48,
	0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x64, 0x22, 0x5a,
	0x0a, 0x0f, 0x54, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x24, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52,
	0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61,
	0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x08, 0x54, 0x63,
	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63, 0x48, 0x61,
	0x6e, 0x64, 0x6c, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x6f, 0x0a, 0x0d,
	0x49, 0x50, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a,
	0x06, 0x69, 0x70, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e,
	0x70, 0x62, 0x2e, 0x49, 0x50, 0x53, 0x65, 0x74, 0x52, 0x06, 0x69, 0x70, 0x73, 0x65, 0x74, 0x73,
	0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x22, 0x99, 0x01,
	0x0a, 0x05, 0x49, 0x50, 0x53, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63,
	0x69, 0x64, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x69, 0x64, 0x72,
	0x73, 0x12, 0x35, 0x0a, 0x0e, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x6f,
	0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x43,
	0x69, 0x64, 0x72, 0x41, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x0c, 0x63, 0x69, 0x64, 0x72,
	0x41, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x74, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x74,
	0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x35, 0x0a, 0x0b, 0x43, 0x69, 0x64,
	0x72, 0x41, 0x6e, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x64, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04,
	0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74,
	0x22, 0x77, 0x0a, 0x15, 0x49, 0x70, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x68, 0x61, 0x69,
	0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x06, 0x63, 0x68, 0x61,
	0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x43,
	0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c,
	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12,
	0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x22, 0xc3, 0x02, 0x0a, 0x05, 0x43, 0x68,
	0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x70, 0x62, 0x2e,
	0x43, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x70,
	0x73, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x69, 0x70, 0x73, 0x65,
	0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x73,
	0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6c,
	0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x63, 0x70, 0x46, 0x6c,
	0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x09, 0x44,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x50, 0x55,
	0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x01, 0x22,
	0xb8, 0x01, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
	0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x03, 0x73, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x73, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x04, 0x6e, 0x73, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x6c, 0x6b, 0x5f,
	0x69, 0x64, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a,
	0x63, 0x6c, 0x6b, 0x49, 0x64, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69,
	0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12,
	0x70, 0x6f, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6f, 0x64, 0x43, 0x6f, 0x6e,
	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x65, 0x0a, 0x0f, 0x43, 0x6f,
	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a,
	0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e,
	0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x22, 0x1e, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4b,
	0x49, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x45, 0x54, 0x50, 0x49, 0x44, 0x10,
	0x01, 0x22, 0x89, 0x02, 0x0a, 0x11, 0x45, 0x78, 0x65, 0x63, 0x53, 0x74, 0x72, 0x65, 0x73, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63,
	0x53, 0x74, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x63,
	0x6f, 0x70, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61,
	0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67,
	0x65, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x70, 0x75, 0x53, 0x74, 0x72, 0x65, 0x73, 0x73, 0x6f,
	0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x70, 0x75, 0x53, 0x74, 0x72,
	0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e,
	0x53, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53,
	0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x73, 0x73,
	0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72,
	0x79, 0x53, 0x74, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x6f,
	0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x41, 0x64, 0x6a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0b, 0x6f, 0x6f, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x41, 0x64, 0x6a, 0x22, 0x1f, 0x0a, 0x05,
	0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e,
	0x45, 0x52, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x4f, 0x44, 0x10, 0x01, 0x22, 0x82, 0x02,
	0x0a, 0x12, 0x45, 0x78, 0x65, 0x63, 0x53, 0x74, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x70, 0x75, 0x49, 0x6e, 0x73, 0x74, 0x61,
	0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x70, 0x75, 0x53, 0x74, 0x61,
	0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x70,
	0x75, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65,
	0x6d, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x72,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6d, 0x65, 0x6d,
	0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e,
	0x63, 0x70, 0x75, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x70, 0x75, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x55, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55,
	0x69, 0x64, 0x22, 0x83, 0x02, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x72,
	0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x70,
	0x75, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x63, 0x70, 0x75, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c,
	0x63, 0x70, 0x75, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0c, 0x63, 0x70, 0x75, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
	0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x6f,
	0x72, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x70, 0x75, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x55, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x70, 0x75, 0x49,
	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65,
	0x6d, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x22, 0xe1, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x49, 0x4f, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f,
	0x6c, 0x75, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75,
	0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
	0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x22, 0x73, 0x0a, 0x14,
	0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x4f, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
	0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21,
	0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69,
	0x64, 0x22, 0xfa, 0x01, 0x0a, 0x15, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x48, 0x74, 0x74, 0x70, 0x43,
	0x68, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72,
	0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65,
	0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f, 0x72,
	0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
	0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
	0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
	0x74, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x6c, 0x73, 0x22, 0xab,
	0x01, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x48, 0x74, 0x74, 0x70, 0x43, 0x68, 0x61, 0x6f,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43,
	0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x73,
	0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x69, 0x64, 0x22, 0x63, 0x0a, 0x0a,
	0x54, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x03, 0x74, 0x63,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63, 0x52,
	0x03, 0x74, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
	0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74,
	0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72,
	0x4e, 0x53, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e,
	0x53, 0x22, 0x8f, 0x02, 0x0a, 0x02, 0x54, 0x63, 0x12, 0x1f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63, 0x2e, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x05, 0x6e, 0x65, 0x74,
	0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x65,
	0x74, 0x65, 0x6d, 0x52, 0x05, 0x6e, 0x65, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x0a, 0x03, 0x74, 0x62,
	0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x62, 0x66,
	0x52, 0x03, 0x74, 0x62, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x70, 0x73, 0x65, 0x74, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x70, 0x73, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x67, 0x72, 0x65,
	0x73, 0x73, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x22, 0x20, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x45, 0x54,
	0x45, 0x4d, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54,
	0x48, 0x10, 0x01, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x44, 0x4e, 0x53, 0x53, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63,
	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d,
	0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x64, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a,
	0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65,
	0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x22,
	0x7d, 0x0a, 0x16, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4a, 0x56, 0x4d, 0x52, 0x75, 0x6c,
	0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e,
	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04,
	0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
	0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x22, 0x7f,
	0x0a, 0x18, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4a, 0x56, 0x4d, 0x52, 0x75,
	0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f,
	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a,
	0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x75, 0x6c,
	0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x22,
	0xf0, 0x01, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68,
	0x61, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f,
	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a,
	0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x39,
	0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21,
	0x2e, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68,
	0x61, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x05, 0x64, 0x65, 0x6c,
	0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x42, 0x6c,
	0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x64, 0x65,
	0x6c, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x4e, 0x53, 0x22, 0x13, 0x0a,
	0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x65, 0x6c, 0x61, 0x79,
	0x10, 0x00, 0x22, 0x60, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x61, 0x79,
	0x53, 0x70, 0x65, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f,
	0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52,
	0x0b, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06,
	0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6a, 0x69,
	0x74, 0x74, 0x65, 0x72, 0x22, 0x43, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x6d,
	0x69, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09,
	0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
	0x08, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x55, 0x73, 0x22, 0x3c, 0x0a, 0x17, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x6a, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x18, 0x52, 0x65, 0x63, 0x6f, 0x76,
	0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x6a, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x32, 0xd2, 0x08, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6f, 0x73,
	0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x54, 0x63, 0x73,
	0x12, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0b, 0x46, 0x6c,
	0x75, 0x73, 0x68, 0x49, 0x50, 0x53, 0x65, 0x74, 0x73, 0x12, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x49,
	0x50, 0x53, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
	0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x49, 0x70, 0x74,
	0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x70, 0x62,
	0x2e, 0x49, 0x70, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00,
	0x12, 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65,
	0x74, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x11,
	0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65,
	0x74, 0x12, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0d,
	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x14, 0x2e,
	0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x40, 0x0a,
	0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x47, 0x65, 0x74, 0x50, 0x69, 0x64,
	0x12, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74,
	0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
	0x40, 0x0a, 0x0d, 0x45, 0x78, 0x65, 0x63, 0x53, 0x74, 0x72, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73,
	0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x53, 0x74, 0x72, 0x65, 0x73, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65,
	0x63, 0x53, 0x74, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x00, 0x12, 0x44, 0x0a, 0x0f, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x72, 0x65, 0x73,
	0x73, 0x6f, 0x72, 0x73, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c,
	0x53, 0x74, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79,
	0x49, 0x4f, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x49, 0x4f, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x4f, 0x43, 0x68, 0x61,
	0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0e,
	0x41, 0x70, 0x70, 0x6c, 0x79, 0x48, 0x74, 0x74, 0x70, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x12, 0x19,
	0x2e, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x48, 0x74, 0x74, 0x70, 0x43, 0x68, 0x61,
	0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x41,
	0x70, 0x70, 0x6c, 0x79, 0x48, 0x74, 0x74, 0x70, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x6c, 0x79,
	0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e,
	0x41, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x6c,
	0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x11, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72,
	0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6f, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e,
	0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6f,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
	0x22, 0x00, 0x12, 0x41, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x44, 0x4e, 0x53, 0x53, 0x65, 0x72, 0x76,
	0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x4e, 0x53, 0x53, 0x65,
	0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
	0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c,
	0x4a, 0x56, 0x4d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x6e,
	0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4a, 0x56, 0x4d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4b,
	0x0a, 0x11, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x4a, 0x56, 0x4d, 0x52, 0x75,
	0x6c, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61,
	0x6c, 0x6c, 0x4a, 0x56, 0x4d, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_chaosdaemon_proto_rawDescOnce sync.Once
	file_chaosdaemon_proto_rawDescData = file_chaosdaemon_proto_rawDesc
)

func file_chaosdaemon_proto_rawDescGZIP() []byte {
	file_chaosdaemon_proto_rawDescOnce.Do(func() {
		file_chaosdaemon_proto_rawDescData = protoimpl.X.CompressGZIP(file_chaosdaemon_proto_rawDescData)
	})
	return file_chaosdaemon_proto_rawDescData
}

var file_chaosdaemon_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_chaosdaemon_proto_msgTypes = make([]protoimpl.MessageInfo, 37)
var file_chaosdaemon_proto_goTypes = []interface{}{
	(Chain_Direction)(0),               // 0: pb.Chain.Direction
	(ContainerAction_Action)(0),        // 1: pb.ContainerAction.Action
	(ExecStressRequest_Scope)(0),       // 2: pb.ExecStressRequest.Scope
	(Tc_Type)(0),                       // 3: pb.Tc.Type
	(ApplyBlockChaosRequest_Action)(0), // 4: pb.ApplyBlockChaosRequest.Action
	(*TcHandle)(nil),                   // 5: pb.TcHandle
	(*ContainerRequest)(nil),           // 6: pb.ContainerRequest
	(*ContainerResponse)(nil),          // 7: pb.ContainerResponse
	(*NetemRequest)(nil),               // 8: pb.NetemRequest
	(*Netem)(nil),                      // 9: pb.Netem
	(*TbfRequest)(nil),                 // 10: pb.TbfRequest
	(*Tbf)(nil),                        // 11: pb.Tbf
	(*QdiscRequest)(nil),               // 12: pb.QdiscRequest
	(*Qdisc)(nil),                      // 13: pb.Qdisc
	(*EmatchFilterRequest)(nil),        // 14: pb.EmatchFilterRequest
	(*EmatchFilter)(nil),               // 15: pb.EmatchFilter
	(*TcFilterRequest)(nil),            // 16: pb.TcFilterRequest
	(*TcFilter)(nil),                   // 17: pb.TcFilter
	(*IPSetsRequest)(nil),              // 18: pb.IPSetsRequest
	(*IPSet)(nil),                      // 19: pb.IPSet
	(*CidrAndPort)(nil),                // 20: pb.CidrAndPort
	(*IptablesChainsRequest)(nil),      // 21: pb.IptablesChainsRequest
	(*Chain)(nil),                      // 22: pb.Chain
	(*TimeRequest)(nil),                // 23: pb.TimeRequest
	(*ContainerAction)(nil),            // 24: pb.ContainerAction
	(*ExecStressRequest)(nil),          // 25: pb.ExecStressRequest
	(*ExecStressResponse)(nil),         // 26: pb.ExecStressResponse
	(*CancelStressRequest)(nil),        // 27: pb.CancelStressRequest
	(*ApplyIOChaosRequest)(nil),        // 28: pb.ApplyIOChaosRequest
	(*ApplyIOChaosResponse)(nil),       // 29: pb.ApplyIOChaosResponse
	(*ApplyHttpChaosRequest)(nil),      // 30: pb.ApplyHttpChaosRequest
	(*ApplyHttpChaosResponse)(nil),     // 31: pb.ApplyHttpChaosResponse
	(*TcsRequest)(nil),                 // 32: pb.TcsRequest
	(*Tc)(nil),                         // 33: pb.Tc
	(*SetDNSServerRequest)(nil),        // 34: pb.SetDNSServerRequest
	(*InstallJVMRulesRequest)(nil),     // 35: pb.InstallJVMRulesRequest
	(*UninstallJVMRulesRequest)(nil),   // 36: pb.UninstallJVMRulesRequest
	(*ApplyBlockChaosRequest)(nil),     // 37: pb.ApplyBlockChaosRequest
	(*BlockDelaySpec)(nil),             // 38: pb.BlockDelaySpec
	(*BlockLimitSpec)(nil),             // 39: pb.BlockLimitSpec
	(*ApplyBlockChaosResponse)(nil),    // 40: pb.ApplyBlockChaosResponse
	(*RecoverBlockChaosRequest)(nil),   // 41: pb.RecoverBlockChaosRequest
	(*empty.Empty)(nil),                // 42: google.protobuf.Empty
}
var file_chaosdaemon_proto_depIdxs = []int32{
	24, // 0: pb.ContainerRequest.action:type_name -> pb.ContainerAction
	9,  // 1: pb.NetemRequest.netem:type_name -> pb.Netem
	5,  // 2: pb.NetemRequest.handle:type_name -> pb.TcHandle
	5,  // 3: pb.NetemRequest.parent:type_name -> pb.TcHandle
	5,  // 4: pb.Netem.parent:type_name -> pb.TcHandle
	5,  // 5: pb.Netem.handle:type_name -> pb.TcHandle
	11, // 6: pb.TbfRequest.tbf:type_name -> pb.Tbf
	13, // 7: pb.QdiscRequest.qdisc:type_name -> pb.Qdisc
	5,  // 8: pb.Qdisc.parent:type_name -> pb.TcHandle
	5,  // 9: pb.Qdisc.handle:type_name -> pb.TcHandle
	15, // 10: pb.EmatchFilterRequest.filter:type_name -> pb.EmatchFilter
	5,  // 11: pb.EmatchFilter.parent:type_name -> pb.TcHandle
	5,  // 12: pb.EmatchFilter.classid:type_name -> pb.TcHandle
	17, // 13: pb.TcFilterRequest.filter:type_name -> pb.TcFilter
	5,  // 14: pb.TcFilter.parent:type_name -> pb.TcHandle
	19, // 15: pb.IPSetsRequest.ipsets:type_name -> pb.IPSet
	20, // 16: pb.IPSet.cidr_and_ports:type_name -> pb.CidrAndPort
	22, // 17: pb.IptablesChainsRequest.chains:type_name -> pb.Chain
	0,  // 18: pb.Chain.direction:type_name -> pb.Chain.Direction
	1,  // 19: pb.ContainerAction.action:type_name -> pb.ContainerAction.Action
	2,  // 20: pb.ExecStressRequest.scope:type_name -> pb.ExecStressRequest.Scope
	33, // 21: pb.TcsRequest.tcs:type_name -> pb.Tc
	3,  // 22: pb.Tc.type:type_name -> pb.Tc.Type
	9,  // 23: pb.Tc.netem:type_name -> pb.Netem
	11, // 24: pb.Tc.tbf:type_name -> pb.Tbf
	4,  // 25: pb.ApplyBlockChaosRequest.action:type_name -> pb.ApplyBlockChaosRequest.Action
	38, // 26: pb.ApplyBlockChaosRequest.delay:type_name -> pb.BlockDelaySpec
	32, // 27: pb.ChaosDaemon.SetTcs:input_type -> pb.TcsRequest
	18, // 28: pb.ChaosDaemon.FlushIPSets:input_type -> pb.IPSetsRequest
	21, // 29: pb.ChaosDaemon.SetIptablesChains:input_type -> pb.IptablesChainsRequest
	23, // 30: pb.ChaosDaemon.SetTimeOffset:input_type -> pb.TimeRequest
	23, // 31: pb.ChaosDaemon.RecoverTimeOffset:input_type -> pb.TimeRequest
	6,  // 32: pb.ChaosDaemon.ContainerKill:input_type -> pb.ContainerRequest
	6,  // 33: pb.ChaosDaemon.ContainerGetPid:input_type -> pb.ContainerRequest
	25, // 34: pb.ChaosDaemon.ExecStressors:input_type -> pb.ExecStressRequest
	27, // 35: pb.ChaosDaemon.CancelStressors:input_type -> pb.CancelStressRequest
	28, // 36: pb.ChaosDaemon.ApplyIOChaos:input_type -> pb.ApplyIOChaosRequest
	30, // 37: pb.ChaosDaemon.ApplyHttpChaos:input_type -> pb.ApplyHttpChaosRequest
	37, // 38: pb.ChaosDaemon.ApplyBlockChaos:input_type -> pb.ApplyBlockChaosRequest
	41, // 39: pb.ChaosDaemon.RecoverBlockChaos:input_type -> pb.RecoverBlockChaosRequest
	34, // 40: pb.ChaosDaemon.SetDNSServer:input_type -> pb.SetDNSServerRequest
	35, // 41: pb.ChaosDaemon.InstallJVMRules:input_type -> pb.InstallJVMRulesRequest
	36, // 42: pb.ChaosDaemon.UninstallJVMRules:input_type -> pb.UninstallJVMRulesRequest
	42, // 43: pb.ChaosDaemon.SetTcs:output_type -> google.protobuf.Empty
	42, // 44: pb.ChaosDaemon.FlushIPSets:output_type -> google.protobuf.Empty
	42, // 45: pb.ChaosDaemon.SetIptablesChains:output_type -> google.protobuf.Empty
	42, // 46: pb.ChaosDaemon.SetTimeOffset:output_type -> google.protobuf.Empty
	42, // 47: pb.ChaosDaemon.RecoverTimeOffset:output_type -> google.protobuf.Empty
	42, // 48: pb.ChaosDaemon.ContainerKill:output_type -> google.protobuf.Empty
	7,  // 49: pb.ChaosDaemon.ContainerGetPid:output_type -> pb.ContainerResponse
	26, // 50: pb.ChaosDaemon.ExecStressors:output_type -> pb.ExecStressResponse
	42, // 51: pb.ChaosDaemon.CancelStressors:output_type -> google.protobuf.Empty
	29, // 52: pb.ChaosDaemon.ApplyIOChaos:output_type -> pb.ApplyIOChaosResponse
	31, // 53: pb.ChaosDaemon.ApplyHttpChaos:output_type -> pb.ApplyHttpChaosResponse
	40, // 54: pb.ChaosDaemon.ApplyBlockChaos:output_type -> pb.ApplyBlockChaosResponse
	42, // 55: pb.ChaosDaemon.RecoverBlockChaos:output_type -> google.protobuf.Empty
	42, // 56: pb.ChaosDaemon.SetDNSServer:output_type -> google.protobuf.Empty
	42, // 57: pb.ChaosDaemon.InstallJVMRules:output_type -> google.protobuf.Empty
	42, // 58: pb.ChaosDaemon.UninstallJVMRules:output_type -> google.protobuf.Empty
	43, // [43:59] is the sub-list for method output_type
	27, // [27:43] is the sub-list for method input_type
	27, // [27:27] is the sub-list for extension type_name
	27, // [27:27] is the sub-list for extension extendee
	0,  // [0:27] is the sub-list for field type_name
}

func init() { file_chaosdaemon_proto_init() }
func file_chaosdaemon_proto_init() {
	if File_chaosdaemon_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_chaosdaemon_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TcHandle); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ContainerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ContainerResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NetemRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Netem); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TbfRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Tbf); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QdiscRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Qdisc); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EmatchFilterRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EmatchFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TcFilterRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TcFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IPSetsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IPSet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CidrAndPort); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IptablesChainsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Chain); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TimeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ContainerAction); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecStressRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ExecStressResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CancelStressRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplyIOChaosRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplyIOChaosResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplyHttpChaosRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplyHttpChaosResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TcsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Tc); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SetDNSServerRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InstallJVMRulesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UninstallJVMRulesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplyBlockChaosRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlockDelaySpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BlockLimitSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApplyBlockChaosResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chaosdaemon_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RecoverBlockChaosRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_chaosdaemon_proto_rawDesc,
			NumEnums:      5,
			NumMessages:   37,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_chaosdaemon_proto_goTypes,
		DependencyIndexes: file_chaosdaemon_proto_depIdxs,
		EnumInfos:         file_chaosdaemon_proto_enumTypes,
		MessageInfos:      file_chaosdaemon_proto_msgTypes,
	}.Build()
	File_chaosdaemon_proto = out.File
	file_chaosdaemon_proto_rawDesc = nil
	file_chaosdaemon_proto_goTypes = nil
	file_chaosdaemon_proto_depIdxs = nil
}

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

// 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.SupportPackageIsVersion6

// ChaosDaemonClient is the client API for ChaosDaemon service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ChaosDaemonClient interface {
	SetTcs(ctx context.Context, in *TcsRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	FlushIPSets(ctx context.Context, in *IPSetsRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	SetIptablesChains(ctx context.Context, in *IptablesChainsRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	SetTimeOffset(ctx context.Context, in *TimeRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	RecoverTimeOffset(ctx context.Context, in *TimeRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	ContainerKill(ctx context.Context, in *ContainerRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	ContainerGetPid(ctx context.Context, in *ContainerRequest, opts ...grpc.CallOption) (*ContainerResponse, error)
	ExecStressors(ctx context.Context, in *ExecStressRequest, opts ...grpc.CallOption) (*ExecStressResponse, error)
	CancelStressors(ctx context.Context, in *CancelStressRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	ApplyIOChaos(ctx context.Context, in *ApplyIOChaosRequest, opts ...grpc.CallOption) (*ApplyIOChaosResponse, error)
	ApplyHttpChaos(ctx context.Context, in *ApplyHttpChaosRequest, opts ...grpc.CallOption) (*ApplyHttpChaosResponse, error)
	ApplyBlockChaos(ctx context.Context, in *ApplyBlockChaosRequest, opts ...grpc.CallOption) (*ApplyBlockChaosResponse, error)
	RecoverBlockChaos(ctx context.Context, in *RecoverBlockChaosRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	SetDNSServer(ctx context.Context, in *SetDNSServerRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	InstallJVMRules(ctx context.Context, in *InstallJVMRulesRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	UninstallJVMRules(ctx context.Context, in *UninstallJVMRulesRequest, opts ...grpc.CallOption) (*empty.Empty, error)
}

type chaosDaemonClient struct {
	cc grpc.ClientConnInterface
}

func NewChaosDaemonClient(cc grpc.ClientConnInterface) ChaosDaemonClient {
	return &chaosDaemonClient{cc}
}

func (c *chaosDaemonClient) SetTcs(ctx context.Context, in *TcsRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/SetTcs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) FlushIPSets(ctx context.Context, in *IPSetsRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/FlushIPSets", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) SetIptablesChains(ctx context.Context, in *IptablesChainsRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/SetIptablesChains", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) SetTimeOffset(ctx context.Context, in *TimeRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/SetTimeOffset", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) RecoverTimeOffset(ctx context.Context, in *TimeRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/RecoverTimeOffset", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) ContainerKill(ctx context.Context, in *ContainerRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/ContainerKill", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) ContainerGetPid(ctx context.Context, in *ContainerRequest, opts ...grpc.CallOption) (*ContainerResponse, error) {
	out := new(ContainerResponse)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/ContainerGetPid", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) ExecStressors(ctx context.Context, in *ExecStressRequest, opts ...grpc.CallOption) (*ExecStressResponse, error) {
	out := new(ExecStressResponse)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/ExecStressors", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) CancelStressors(ctx context.Context, in *CancelStressRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/CancelStressors", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) ApplyIOChaos(ctx context.Context, in *ApplyIOChaosRequest, opts ...grpc.CallOption) (*ApplyIOChaosResponse, error) {
	out := new(ApplyIOChaosResponse)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/ApplyIOChaos", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) ApplyHttpChaos(ctx context.Context, in *ApplyHttpChaosRequest, opts ...grpc.CallOption) (*ApplyHttpChaosResponse, error) {
	out := new(ApplyHttpChaosResponse)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/ApplyHttpChaos", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) ApplyBlockChaos(ctx context.Context, in *ApplyBlockChaosRequest, opts ...grpc.CallOption) (*ApplyBlockChaosResponse, error) {
	out := new(ApplyBlockChaosResponse)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/ApplyBlockChaos", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) RecoverBlockChaos(ctx context.Context, in *RecoverBlockChaosRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/RecoverBlockChaos", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) SetDNSServer(ctx context.Context, in *SetDNSServerRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/SetDNSServer", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) InstallJVMRules(ctx context.Context, in *InstallJVMRulesRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/InstallJVMRules", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *chaosDaemonClient) UninstallJVMRules(ctx context.Context, in *UninstallJVMRulesRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/pb.ChaosDaemon/UninstallJVMRules", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// ChaosDaemonServer is the server API for ChaosDaemon service.
type ChaosDaemonServer interface {
	SetTcs(context.Context, *TcsRequest) (*empty.Empty, error)
	FlushIPSets(context.Context, *IPSetsRequest) (*empty.Empty, error)
	SetIptablesChains(context.Context, *IptablesChainsRequest) (*empty.Empty, error)
	SetTimeOffset(context.Context, *TimeRequest) (*empty.Empty, error)
	RecoverTimeOffset(context.Context, *TimeRequest) (*empty.Empty, error)
	ContainerKill(context.Context, *ContainerRequest) (*empty.Empty, error)
	ContainerGetPid(context.Context, *ContainerRequest) (*ContainerResponse, error)
	ExecStressors(context.Context, *ExecStressRequest) (*ExecStressResponse, error)
	CancelStressors(context.Context, *CancelStressRequest) (*empty.Empty, error)
	ApplyIOChaos(context.Context, *ApplyIOChaosRequest) (*ApplyIOChaosResponse, error)
	ApplyHttpChaos(context.Context, *ApplyHttpChaosRequest) (*ApplyHttpChaosResponse, error)
	ApplyBlockChaos(context.Context, *ApplyBlockChaosRequest) (*ApplyBlockChaosResponse, error)
	RecoverBlockChaos(context.Context, *RecoverBlockChaosRequest) (*empty.Empty, error)
	SetDNSServer(context.Context, *SetDNSServerRequest) (*empty.Empty, error)
	InstallJVMRules(context.Context, *InstallJVMRulesRequest) (*empty.Empty, error)
	UninstallJVMRules(context.Context, *UninstallJVMRulesRequest) (*empty.Empty, error)
}

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

func (*UnimplementedChaosDaemonServer) SetTcs(context.Context, *TcsRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetTcs not implemented")
}
func (*UnimplementedChaosDaemonServer) FlushIPSets(context.Context, *IPSetsRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FlushIPSets not implemented")
}
func (*UnimplementedChaosDaemonServer) SetIptablesChains(context.Context, *IptablesChainsRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetIptablesChains not implemented")
}
func (*UnimplementedChaosDaemonServer) SetTimeOffset(context.Context, *TimeRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetTimeOffset not implemented")
}
func (*UnimplementedChaosDaemonServer) RecoverTimeOffset(context.Context, *TimeRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RecoverTimeOffset not implemented")
}
func (*UnimplementedChaosDaemonServer) ContainerKill(context.Context, *ContainerRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ContainerKill not implemented")
}
func (*UnimplementedChaosDaemonServer) ContainerGetPid(context.Context, *ContainerRequest) (*ContainerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ContainerGetPid not implemented")
}
func (*UnimplementedChaosDaemonServer) ExecStressors(context.Context, *ExecStressRequest) (*ExecStressResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ExecStressors not implemented")
}
func (*UnimplementedChaosDaemonServer) CancelStressors(context.Context, *CancelStressRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CancelStressors not implemented")
}
func (*UnimplementedChaosDaemonServer) ApplyIOChaos(context.Context, *ApplyIOChaosRequest) (*ApplyIOChaosResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ApplyIOChaos not implemented")
}
func (*UnimplementedChaosDaemonServer) ApplyHttpChaos(context.Context, *ApplyHttpChaosRequest) (*ApplyHttpChaosResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ApplyHttpChaos not implemented")
}
func (*UnimplementedChaosDaemonServer) ApplyBlockChaos(context.Context, *ApplyBlockChaosRequest) (*ApplyBlockChaosResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ApplyBlockChaos not implemented")
}
func (*UnimplementedChaosDaemonServer) RecoverBlockChaos(context.Context, *RecoverBlockChaosRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RecoverBlockChaos not implemented")
}
func (*UnimplementedChaosDaemonServer) SetDNSServer(context.Context, *SetDNSServerRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetDNSServer not implemented")
}
func (*UnimplementedChaosDaemonServer) InstallJVMRules(context.Context, *InstallJVMRulesRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method InstallJVMRules not implemented")
}
func (*UnimplementedChaosDaemonServer) UninstallJVMRules(context.Context, *UninstallJVMRulesRequest) (*empty.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UninstallJVMRules not implemented")
}

func RegisterChaosDaemonServer(s *grpc.Server, srv ChaosDaemonServer) {
	s.RegisterService(&_ChaosDaemon_serviceDesc, srv)
}

func _ChaosDaemon_SetTcs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TcsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).SetTcs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/SetTcs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).SetTcs(ctx, req.(*TcsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_FlushIPSets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(IPSetsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).FlushIPSets(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/FlushIPSets",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).FlushIPSets(ctx, req.(*IPSetsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_SetIptablesChains_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(IptablesChainsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).SetIptablesChains(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/SetIptablesChains",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).SetIptablesChains(ctx, req.(*IptablesChainsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_SetTimeOffset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TimeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).SetTimeOffset(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/SetTimeOffset",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).SetTimeOffset(ctx, req.(*TimeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_RecoverTimeOffset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(TimeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).RecoverTimeOffset(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/RecoverTimeOffset",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).RecoverTimeOffset(ctx, req.(*TimeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_ContainerKill_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ContainerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).ContainerKill(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/ContainerKill",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).ContainerKill(ctx, req.(*ContainerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_ContainerGetPid_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ContainerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).ContainerGetPid(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/ContainerGetPid",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).ContainerGetPid(ctx, req.(*ContainerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_ExecStressors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ExecStressRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).ExecStressors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/ExecStressors",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).ExecStressors(ctx, req.(*ExecStressRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_CancelStressors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelStressRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).CancelStressors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/CancelStressors",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).CancelStressors(ctx, req.(*CancelStressRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_ApplyIOChaos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ApplyIOChaosRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).ApplyIOChaos(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/ApplyIOChaos",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).ApplyIOChaos(ctx, req.(*ApplyIOChaosRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_ApplyHttpChaos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ApplyHttpChaosRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).ApplyHttpChaos(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/ApplyHttpChaos",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).ApplyHttpChaos(ctx, req.(*ApplyHttpChaosRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_ApplyBlockChaos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ApplyBlockChaosRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).ApplyBlockChaos(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/ApplyBlockChaos",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).ApplyBlockChaos(ctx, req.(*ApplyBlockChaosRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_RecoverBlockChaos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RecoverBlockChaosRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).RecoverBlockChaos(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/RecoverBlockChaos",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).RecoverBlockChaos(ctx, req.(*RecoverBlockChaosRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_SetDNSServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetDNSServerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).SetDNSServer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/SetDNSServer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).SetDNSServer(ctx, req.(*SetDNSServerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_InstallJVMRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(InstallJVMRulesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).InstallJVMRules(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/InstallJVMRules",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).InstallJVMRules(ctx, req.(*InstallJVMRulesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChaosDaemon_UninstallJVMRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UninstallJVMRulesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChaosDaemonServer).UninstallJVMRules(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.ChaosDaemon/UninstallJVMRules",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChaosDaemonServer).UninstallJVMRules(ctx, req.(*UninstallJVMRulesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _ChaosDaemon_serviceDesc = grpc.ServiceDesc{
	ServiceName: "pb.ChaosDaemon",
	HandlerType: (*ChaosDaemonServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "SetTcs",
			Handler:    _ChaosDaemon_SetTcs_Handler,
		},
		{
			MethodName: "FlushIPSets",
			Handler:    _ChaosDaemon_FlushIPSets_Handler,
		},
		{
			MethodName: "SetIptablesChains",
			Handler:    _ChaosDaemon_SetIptablesChains_Handler,
		},
		{
			MethodName: "SetTimeOffset",
			Handler:    _ChaosDaemon_SetTimeOffset_Handler,
		},
		{
			MethodName: "RecoverTimeOffset",
			Handler:    _ChaosDaemon_RecoverTimeOffset_Handler,
		},
		{
			MethodName: "ContainerKill",
			Handler:    _ChaosDaemon_ContainerKill_Handler,
		},
		{
			MethodName: "ContainerGetPid",
			Handler:    _ChaosDaemon_ContainerGetPid_Handler,
		},
		{
			MethodName: "ExecStressors",
			Handler:    _ChaosDaemon_ExecStressors_Handler,
		},
		{
			MethodName: "CancelStressors",
			Handler:    _ChaosDaemon_CancelStressors_Handler,
		},
		{
			MethodName: "ApplyIOChaos",
			Handler:    _ChaosDaemon_ApplyIOChaos_Handler,
		},
		{
			MethodName: "ApplyHttpChaos",
			Handler:    _ChaosDaemon_ApplyHttpChaos_Handler,
		},
		{
			MethodName: "ApplyBlockChaos",
			Handler:    _ChaosDaemon_ApplyBlockChaos_Handler,
		},
		{
			MethodName: "RecoverBlockChaos",
			Handler:    _ChaosDaemon_RecoverBlockChaos_Handler,
		},
		{
			MethodName: "SetDNSServer",
			Handler:    _ChaosDaemon_SetDNSServer_Handler,
		},
		{
			MethodName: "InstallJVMRules",
			Handler:    _ChaosDaemon_InstallJVMRules_Handler,
		},
		{
			MethodName: "UninstallJVMRules",
			Handler:    _ChaosDaemon_UninstallJVMRules_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "chaosdaemon.proto",
}
