// Code generated by protoc-gen-go. DO NOT EDIT.
// source: envoy/extensions/filters/http/fault/v3/fault.proto

package envoy_extensions_filters_http_fault_v3

import (
	fmt "fmt"
	_ "github.com/cncf/udpa/go/udpa/annotations"
	v32 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3"
	v31 "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/common/fault/v3"
	v3 "github.com/envoyproxy/go-control-plane/envoy/type/v3"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	proto "github.com/golang/protobuf/proto"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type FaultAbort struct {
	// Types that are valid to be assigned to ErrorType:
	//	*FaultAbort_HttpStatus
	//	*FaultAbort_HeaderAbort_
	ErrorType            isFaultAbort_ErrorType `protobuf_oneof:"error_type"`
	Percentage           *v3.FractionalPercent  `protobuf:"bytes,3,opt,name=percentage,proto3" json:"percentage,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

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

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

var xxx_messageInfo_FaultAbort proto.InternalMessageInfo

type isFaultAbort_ErrorType interface {
	isFaultAbort_ErrorType()
}

type FaultAbort_HttpStatus struct {
	HttpStatus uint32 `protobuf:"varint,2,opt,name=http_status,json=httpStatus,proto3,oneof"`
}

type FaultAbort_HeaderAbort_ struct {
	HeaderAbort *FaultAbort_HeaderAbort `protobuf:"bytes,4,opt,name=header_abort,json=headerAbort,proto3,oneof"`
}

func (*FaultAbort_HttpStatus) isFaultAbort_ErrorType() {}

func (*FaultAbort_HeaderAbort_) isFaultAbort_ErrorType() {}

func (m *FaultAbort) GetErrorType() isFaultAbort_ErrorType {
	if m != nil {
		return m.ErrorType
	}
	return nil
}

func (m *FaultAbort) GetHttpStatus() uint32 {
	if x, ok := m.GetErrorType().(*FaultAbort_HttpStatus); ok {
		return x.HttpStatus
	}
	return 0
}

func (m *FaultAbort) GetHeaderAbort() *FaultAbort_HeaderAbort {
	if x, ok := m.GetErrorType().(*FaultAbort_HeaderAbort_); ok {
		return x.HeaderAbort
	}
	return nil
}

func (m *FaultAbort) GetPercentage() *v3.FractionalPercent {
	if m != nil {
		return m.Percentage
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*FaultAbort) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*FaultAbort_HttpStatus)(nil),
		(*FaultAbort_HeaderAbort_)(nil),
	}
}

type FaultAbort_HeaderAbort struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_FaultAbort_HeaderAbort proto.InternalMessageInfo

type HTTPFault struct {
	Delay                           *v31.FaultDelay       `protobuf:"bytes,1,opt,name=delay,proto3" json:"delay,omitempty"`
	Abort                           *FaultAbort           `protobuf:"bytes,2,opt,name=abort,proto3" json:"abort,omitempty"`
	UpstreamCluster                 string                `protobuf:"bytes,3,opt,name=upstream_cluster,json=upstreamCluster,proto3" json:"upstream_cluster,omitempty"`
	Headers                         []*v32.HeaderMatcher  `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"`
	DownstreamNodes                 []string              `protobuf:"bytes,5,rep,name=downstream_nodes,json=downstreamNodes,proto3" json:"downstream_nodes,omitempty"`
	MaxActiveFaults                 *wrappers.UInt32Value `protobuf:"bytes,6,opt,name=max_active_faults,json=maxActiveFaults,proto3" json:"max_active_faults,omitempty"`
	ResponseRateLimit               *v31.FaultRateLimit   `protobuf:"bytes,7,opt,name=response_rate_limit,json=responseRateLimit,proto3" json:"response_rate_limit,omitempty"`
	DelayPercentRuntime             string                `protobuf:"bytes,8,opt,name=delay_percent_runtime,json=delayPercentRuntime,proto3" json:"delay_percent_runtime,omitempty"`
	AbortPercentRuntime             string                `protobuf:"bytes,9,opt,name=abort_percent_runtime,json=abortPercentRuntime,proto3" json:"abort_percent_runtime,omitempty"`
	DelayDurationRuntime            string                `protobuf:"bytes,10,opt,name=delay_duration_runtime,json=delayDurationRuntime,proto3" json:"delay_duration_runtime,omitempty"`
	AbortHttpStatusRuntime          string                `protobuf:"bytes,11,opt,name=abort_http_status_runtime,json=abortHttpStatusRuntime,proto3" json:"abort_http_status_runtime,omitempty"`
	MaxActiveFaultsRuntime          string                `protobuf:"bytes,12,opt,name=max_active_faults_runtime,json=maxActiveFaultsRuntime,proto3" json:"max_active_faults_runtime,omitempty"`
	ResponseRateLimitPercentRuntime string                `protobuf:"bytes,13,opt,name=response_rate_limit_percent_runtime,json=responseRateLimitPercentRuntime,proto3" json:"response_rate_limit_percent_runtime,omitempty"`
	XXX_NoUnkeyedLiteral            struct{}              `json:"-"`
	XXX_unrecognized                []byte                `json:"-"`
	XXX_sizecache                   int32                 `json:"-"`
}

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

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

var xxx_messageInfo_HTTPFault proto.InternalMessageInfo

func (m *HTTPFault) GetDelay() *v31.FaultDelay {
	if m != nil {
		return m.Delay
	}
	return nil
}

func (m *HTTPFault) GetAbort() *FaultAbort {
	if m != nil {
		return m.Abort
	}
	return nil
}

func (m *HTTPFault) GetUpstreamCluster() string {
	if m != nil {
		return m.UpstreamCluster
	}
	return ""
}

func (m *HTTPFault) GetHeaders() []*v32.HeaderMatcher {
	if m != nil {
		return m.Headers
	}
	return nil
}

func (m *HTTPFault) GetDownstreamNodes() []string {
	if m != nil {
		return m.DownstreamNodes
	}
	return nil
}

func (m *HTTPFault) GetMaxActiveFaults() *wrappers.UInt32Value {
	if m != nil {
		return m.MaxActiveFaults
	}
	return nil
}

func (m *HTTPFault) GetResponseRateLimit() *v31.FaultRateLimit {
	if m != nil {
		return m.ResponseRateLimit
	}
	return nil
}

func (m *HTTPFault) GetDelayPercentRuntime() string {
	if m != nil {
		return m.DelayPercentRuntime
	}
	return ""
}

func (m *HTTPFault) GetAbortPercentRuntime() string {
	if m != nil {
		return m.AbortPercentRuntime
	}
	return ""
}

func (m *HTTPFault) GetDelayDurationRuntime() string {
	if m != nil {
		return m.DelayDurationRuntime
	}
	return ""
}

func (m *HTTPFault) GetAbortHttpStatusRuntime() string {
	if m != nil {
		return m.AbortHttpStatusRuntime
	}
	return ""
}

func (m *HTTPFault) GetMaxActiveFaultsRuntime() string {
	if m != nil {
		return m.MaxActiveFaultsRuntime
	}
	return ""
}

func (m *HTTPFault) GetResponseRateLimitPercentRuntime() string {
	if m != nil {
		return m.ResponseRateLimitPercentRuntime
	}
	return ""
}

func init() {
	proto.RegisterType((*FaultAbort)(nil), "envoy.extensions.filters.http.fault.v3.FaultAbort")
	proto.RegisterType((*FaultAbort_HeaderAbort)(nil), "envoy.extensions.filters.http.fault.v3.FaultAbort.HeaderAbort")
	proto.RegisterType((*HTTPFault)(nil), "envoy.extensions.filters.http.fault.v3.HTTPFault")
}

func init() {
	proto.RegisterFile("envoy/extensions/filters/http/fault/v3/fault.proto", fileDescriptor_1c8de848a52219f2)
}

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