// fake.proto describes the message format for creating integration tests for
// streaming telemetry components by generating a reproducible stream of
// updates from fake targets.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.25.0-devel
// 	protoc        v3.12.4
// source: github.com/openconfig/gnmi/testing/fake/proto/fake.proto

package gnmi_fake

import (
	any "github.com/golang/protobuf/ptypes/any"
	gnmi "github.com/openconfig/gnmi/proto/gnmi"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

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)
)

type State int32

const (
	State_STOPPED State = 0
	State_INIT    State = 1
	State_RUNNING State = 2
)

// Enum value maps for State.
var (
	State_name = map[int32]string{
		0: "STOPPED",
		1: "INIT",
		2: "RUNNING",
	}
	State_value = map[string]int32{
		"STOPPED": 0,
		"INIT":    1,
		"RUNNING": 2,
	}
)

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

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

func (State) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes[0].Descriptor()
}

func (State) Type() protoreflect.EnumType {
	return &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes[0]
}

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

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

type Config_ClientType int32

const (
	Config_GRPC           Config_ClientType = 0
	Config_STUBBY         Config_ClientType = 1
	Config_GRPC_GNMI      Config_ClientType = 2
	Config_GRPC_GNMI_PROD Config_ClientType = 3
)

// Enum value maps for Config_ClientType.
var (
	Config_ClientType_name = map[int32]string{
		0: "GRPC",
		1: "STUBBY",
		2: "GRPC_GNMI",
		3: "GRPC_GNMI_PROD",
	}
	Config_ClientType_value = map[string]int32{
		"GRPC":           0,
		"STUBBY":         1,
		"GRPC_GNMI":      2,
		"GRPC_GNMI_PROD": 3,
	}
)

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

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

func (Config_ClientType) Descriptor() protoreflect.EnumDescriptor {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes[1].Descriptor()
}

func (Config_ClientType) Type() protoreflect.EnumType {
	return &file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes[1]
}

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

// Deprecated: Use Config_ClientType.Descriptor instead.
func (Config_ClientType) EnumDescriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{2, 0}
}

// Configuration is used to store all agent configuration for the fake agent
// server.  Each config describes a single agent hosted on the server.
type Configuration struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Repeated list of targets to emulate.
	Config []*Config `protobuf:"bytes,1,rep,name=config,proto3" json:"config,omitempty"`
}

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

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

func (*Configuration) ProtoMessage() {}

func (x *Configuration) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 Configuration.ProtoReflect.Descriptor instead.
func (*Configuration) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{0}
}

func (x *Configuration) GetConfig() []*Config {
	if x != nil {
		return x.Config
	}
	return nil
}

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

	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
}

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

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

func (*Credentials) ProtoMessage() {}

func (x *Credentials) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 Credentials.ProtoReflect.Descriptor instead.
func (*Credentials) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{1}
}

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

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

// Config is a collection of values that together represent the update streams
// for one or more fake devices.
type Config struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The target for which the fake will publish values for.
	Target string `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
	// Port for the agent to listen on. If 0 or unset the agent will pick a port
	// for this agent.
	Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	// A global random seed used in generating subsequent values. Set to have
	// reproducible results.
	//
	// Deprecated: Do not use.
	Seed int64 `protobuf:"varint,6,opt,name=seed,proto3" json:"seed,omitempty"`
	// The list of values generated.  Each value will contain its corresponding
	// target as the first string in the event.GetValue().path meaning that it is
	// possible to generate streams that will be rejected by the cache for testing
	// purposes.
	//
	// Deprecated: Do not use.
	Values []*Value `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
	// Setting disable sync will keep the configured client from autogenerating a
	// sync message. This allows negative testing on sync handling.
	DisableSync bool `protobuf:"varint,4,opt,name=disable_sync,json=disableSync,proto3" json:"disable_sync,omitempty"`
	// Type of client to fake either Stubby or GRPC based fake.
	ClientType Config_ClientType `protobuf:"varint,5,opt,name=client_type,json=clientType,proto3,enum=gnmi.fake.Config_ClientType" json:"client_type,omitempty"`
	// Disable EOF will hold open the subscription and not automagically close
	// the stream once the value queue is empty.
	DisableEof bool `protobuf:"varint,7,opt,name=disable_eof,json=disableEof,proto3" json:"disable_eof,omitempty"`
	// Per RPC credentials for the agent. If not set no per RPC auth will be used.
	Credentials *Credentials `protobuf:"bytes,8,opt,name=credentials,proto3" json:"credentials,omitempty"`
	// TLS cert for use on the agent. If not set the transport will not be TLS.
	Cert []byte `protobuf:"bytes,9,opt,name=cert,proto3" json:"cert,omitempty"`
	// Honor the delay between events in the generated value streams. Default will
	// play events as fast as the can be streamed.
	EnableDelay bool `protobuf:"varint,10,opt,name=enable_delay,json=enableDelay,proto3" json:"enable_delay,omitempty"`
	// Generator for value series for the target.
	//
	// Types that are assignable to Generator:
	//	*Config_Custom
	//	*Config_Random
	//	*Config_Fixed
	Generator isConfig_Generator `protobuf_oneof:"generator"`
	// tunnel_addr is the address of the tunnel server.
	TunnelAddr string `protobuf:"bytes,11,opt,name=tunnel_addr,json=tunnelAddr,proto3" json:"tunnel_addr,omitempty"`
	// tunnel_crt is the certificate file for the tunnel conection.
	TunnelCrt string `protobuf:"bytes,12,opt,name=tunnel_crt,json=tunnelCrt,proto3" json:"tunnel_crt,omitempty"`
}

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

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

func (*Config) ProtoMessage() {}

func (x *Config) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 Config.ProtoReflect.Descriptor instead.
func (*Config) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{2}
}

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

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

// Deprecated: Do not use.
func (x *Config) GetSeed() int64 {
	if x != nil {
		return x.Seed
	}
	return 0
}

// Deprecated: Do not use.
func (x *Config) GetValues() []*Value {
	if x != nil {
		return x.Values
	}
	return nil
}

func (x *Config) GetDisableSync() bool {
	if x != nil {
		return x.DisableSync
	}
	return false
}

func (x *Config) GetClientType() Config_ClientType {
	if x != nil {
		return x.ClientType
	}
	return Config_GRPC
}

func (x *Config) GetDisableEof() bool {
	if x != nil {
		return x.DisableEof
	}
	return false
}

func (x *Config) GetCredentials() *Credentials {
	if x != nil {
		return x.Credentials
	}
	return nil
}

func (x *Config) GetCert() []byte {
	if x != nil {
		return x.Cert
	}
	return nil
}

func (x *Config) GetEnableDelay() bool {
	if x != nil {
		return x.EnableDelay
	}
	return false
}

func (m *Config) GetGenerator() isConfig_Generator {
	if m != nil {
		return m.Generator
	}
	return nil
}

func (x *Config) GetCustom() *any.Any {
	if x, ok := x.GetGenerator().(*Config_Custom); ok {
		return x.Custom
	}
	return nil
}

func (x *Config) GetRandom() *RandomGenerator {
	if x, ok := x.GetGenerator().(*Config_Random); ok {
		return x.Random
	}
	return nil
}

func (x *Config) GetFixed() *FixedGenerator {
	if x, ok := x.GetGenerator().(*Config_Fixed); ok {
		return x.Fixed
	}
	return nil
}

func (x *Config) GetTunnelAddr() string {
	if x != nil {
		return x.TunnelAddr
	}
	return ""
}

func (x *Config) GetTunnelCrt() string {
	if x != nil {
		return x.TunnelCrt
	}
	return ""
}

type isConfig_Generator interface {
	isConfig_Generator()
}

type Config_Custom struct {
	Custom *any.Any `protobuf:"bytes,100,opt,name=custom,proto3,oneof"`
}

type Config_Random struct {
	Random *RandomGenerator `protobuf:"bytes,101,opt,name=random,proto3,oneof"`
}

type Config_Fixed struct {
	Fixed *FixedGenerator `protobuf:"bytes,102,opt,name=fixed,proto3,oneof"`
}

func (*Config_Custom) isConfig_Generator() {}

func (*Config_Random) isConfig_Generator() {}

func (*Config_Fixed) isConfig_Generator() {}

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

	Responses []*gnmi.SubscribeResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
}

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

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

func (*FixedGenerator) ProtoMessage() {}

func (x *FixedGenerator) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 FixedGenerator.ProtoReflect.Descriptor instead.
func (*FixedGenerator) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{3}
}

func (x *FixedGenerator) GetResponses() []*gnmi.SubscribeResponse {
	if x != nil {
		return x.Responses
	}
	return nil
}

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

	Seed   int64    `protobuf:"varint,1,opt,name=seed,proto3" json:"seed,omitempty"`
	Values []*Value `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"`
}

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

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

func (*RandomGenerator) ProtoMessage() {}

func (x *RandomGenerator) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 RandomGenerator.ProtoReflect.Descriptor instead.
func (*RandomGenerator) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{4}
}

func (x *RandomGenerator) GetSeed() int64 {
	if x != nil {
		return x.Seed
	}
	return 0
}

func (x *RandomGenerator) GetValues() []*Value {
	if x != nil {
		return x.Values
	}
	return nil
}

// Delete will cause the value to be deleted at the Value's path.
type DeleteValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DeleteValue) ProtoMessage() {}

func (x *DeleteValue) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 DeleteValue.ProtoReflect.Descriptor instead.
func (*DeleteValue) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{5}
}

// Value is the main message that will trigger a stream of updates for a given
// path.  A file containing a list of values can be used to simulate a network
// device for integration tests.
type Value struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The device specific, or OpenConfig path corresponding to a value.
	Path []string `protobuf:"bytes,1,rep,name=path,proto3" json:"path,omitempty"`
	// The initial timestamp and configuration on how the timestamp will change
	// for subsequent values. If timestamp is not set the default will assume to
	// be the current system time.
	Timestamp *Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// If set, repeat indicates that the value should be repeated this many times,
	// otherwise it is repeated indefinitely.
	Repeat int32 `protobuf:"varint,6,opt,name=repeat,proto3" json:"repeat,omitempty"`
	// A local random seed used in generating subsequent values for this path. If
	// not set, will share the global random source with seed defined in Config.
	Seed int64 `protobuf:"varint,7,opt,name=seed,proto3" json:"seed,omitempty"`
	// The initial value of the chosen type including configuration on how the
	// value will mutate for subsequent updates.
	//
	// Types that are assignable to Value:
	//	*Value_IntValue
	//	*Value_DoubleValue
	//	*Value_StringValue
	//	*Value_Sync
	//	*Value_Delete
	//	*Value_BoolValue
	//	*Value_UintValue
	//	*Value_StringListValue
	Value isValue_Value `protobuf_oneof:"value"`
}

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

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

func (*Value) ProtoMessage() {}

func (x *Value) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 Value.ProtoReflect.Descriptor instead.
func (*Value) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{6}
}

func (x *Value) GetPath() []string {
	if x != nil {
		return x.Path
	}
	return nil
}

func (x *Value) GetTimestamp() *Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

func (x *Value) GetRepeat() int32 {
	if x != nil {
		return x.Repeat
	}
	return 0
}

func (x *Value) GetSeed() int64 {
	if x != nil {
		return x.Seed
	}
	return 0
}

func (m *Value) GetValue() isValue_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *Value) GetIntValue() *IntValue {
	if x, ok := x.GetValue().(*Value_IntValue); ok {
		return x.IntValue
	}
	return nil
}

func (x *Value) GetDoubleValue() *DoubleValue {
	if x, ok := x.GetValue().(*Value_DoubleValue); ok {
		return x.DoubleValue
	}
	return nil
}

func (x *Value) GetStringValue() *StringValue {
	if x, ok := x.GetValue().(*Value_StringValue); ok {
		return x.StringValue
	}
	return nil
}

func (x *Value) GetSync() uint64 {
	if x, ok := x.GetValue().(*Value_Sync); ok {
		return x.Sync
	}
	return 0
}

func (x *Value) GetDelete() *DeleteValue {
	if x, ok := x.GetValue().(*Value_Delete); ok {
		return x.Delete
	}
	return nil
}

func (x *Value) GetBoolValue() *BoolValue {
	if x, ok := x.GetValue().(*Value_BoolValue); ok {
		return x.BoolValue
	}
	return nil
}

func (x *Value) GetUintValue() *UintValue {
	if x, ok := x.GetValue().(*Value_UintValue); ok {
		return x.UintValue
	}
	return nil
}

func (x *Value) GetStringListValue() *StringListValue {
	if x, ok := x.GetValue().(*Value_StringListValue); ok {
		return x.StringListValue
	}
	return nil
}

type isValue_Value interface {
	isValue_Value()
}

type Value_IntValue struct {
	IntValue *IntValue `protobuf:"bytes,100,opt,name=int_value,json=intValue,proto3,oneof"`
}

type Value_DoubleValue struct {
	DoubleValue *DoubleValue `protobuf:"bytes,101,opt,name=double_value,json=doubleValue,proto3,oneof"`
}

type Value_StringValue struct {
	StringValue *StringValue `protobuf:"bytes,102,opt,name=string_value,json=stringValue,proto3,oneof"`
}

type Value_Sync struct {
	Sync uint64 `protobuf:"varint,103,opt,name=sync,proto3,oneof"`
}

type Value_Delete struct {
	Delete *DeleteValue `protobuf:"bytes,104,opt,name=delete,proto3,oneof"`
}

type Value_BoolValue struct {
	BoolValue *BoolValue `protobuf:"bytes,105,opt,name=bool_value,json=boolValue,proto3,oneof"`
}

type Value_UintValue struct {
	UintValue *UintValue `protobuf:"bytes,106,opt,name=uint_value,json=uintValue,proto3,oneof"`
}

type Value_StringListValue struct {
	StringListValue *StringListValue `protobuf:"bytes,107,opt,name=string_list_value,json=stringListValue,proto3,oneof"`
}

func (*Value_IntValue) isValue_Value() {}

func (*Value_DoubleValue) isValue_Value() {}

func (*Value_StringValue) isValue_Value() {}

func (*Value_Sync) isValue_Value() {}

func (*Value_Delete) isValue_Value() {}

func (*Value_BoolValue) isValue_Value() {}

func (*Value_UintValue) isValue_Value() {}

func (*Value_StringListValue) isValue_Value() {}

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

	// Initial timestamp for the corresponding value, nanoseconds since epoch.
	// This value need have no relation to absolute real-time as the stream of
	// of updates is generated without regard to the real clock and can be run
	// repeatably at any time if the seed is set in the corresponding Value.
	Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// These values will vary the change in the timestamp for subsequent outputs
	// by a value between delta_min and delta_max.  Set to the same value to force
	// a set periodic interval.
	DeltaMin int64 `protobuf:"varint,2,opt,name=delta_min,json=deltaMin,proto3" json:"delta_min,omitempty"`
	DeltaMax int64 `protobuf:"varint,3,opt,name=delta_max,json=deltaMax,proto3" json:"delta_max,omitempty"`
}

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

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

func (*Timestamp) ProtoMessage() {}

func (x *Timestamp) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 Timestamp.ProtoReflect.Descriptor instead.
func (*Timestamp) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{7}
}

func (x *Timestamp) GetTimestamp() int64 {
	if x != nil {
		return x.Timestamp
	}
	return 0
}

func (x *Timestamp) GetDeltaMin() int64 {
	if x != nil {
		return x.DeltaMin
	}
	return 0
}

func (x *Timestamp) GetDeltaMax() int64 {
	if x != nil {
		return x.DeltaMax
	}
	return 0
}

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

	// If distribution is IntRange, value is used as the initial value
	// inside [minimum, maximum] and hold the value as it mutates.
	// If distribution is IntList, value is only used to hold the value as it
	// mutates.
	// If no distribution is set, value is used as it mutates, i.e. constant
	// update.
	Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	// Types that are assignable to Distribution:
	//	*IntValue_Range
	//	*IntValue_List
	Distribution isIntValue_Distribution `protobuf_oneof:"distribution"`
}

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

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

func (*IntValue) ProtoMessage() {}

func (x *IntValue) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 IntValue.ProtoReflect.Descriptor instead.
func (*IntValue) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{8}
}

func (x *IntValue) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (m *IntValue) GetDistribution() isIntValue_Distribution {
	if m != nil {
		return m.Distribution
	}
	return nil
}

func (x *IntValue) GetRange() *IntRange {
	if x, ok := x.GetDistribution().(*IntValue_Range); ok {
		return x.Range
	}
	return nil
}

func (x *IntValue) GetList() *IntList {
	if x, ok := x.GetDistribution().(*IntValue_List); ok {
		return x.List
	}
	return nil
}

type isIntValue_Distribution interface {
	isIntValue_Distribution()
}

type IntValue_Range struct {
	Range *IntRange `protobuf:"bytes,2,opt,name=range,proto3,oneof"`
}

type IntValue_List struct {
	List *IntList `protobuf:"bytes,3,opt,name=list,proto3,oneof"`
}

func (*IntValue_Range) isIntValue_Distribution() {}

func (*IntValue_List) isIntValue_Distribution() {}

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

	// The range of the value allowed.
	Minimum int64 `protobuf:"varint,1,opt,name=minimum,proto3" json:"minimum,omitempty"`
	Maximum int64 `protobuf:"varint,2,opt,name=maximum,proto3" json:"maximum,omitempty"`
	// If set, the value is cumulative and the subsequent value is value + delta
	// where delta is randomly chosen between delta_min and delta_max.  The range
	// minimum and maximum are still respected and values will saturate at the
	// boundaries if they are exceeded. If not set subsequent value is a value
	// randomly chosen between minimum and maximum.
	DeltaMin int64 `protobuf:"varint,3,opt,name=delta_min,json=deltaMin,proto3" json:"delta_min,omitempty"`
	DeltaMax int64 `protobuf:"varint,4,opt,name=delta_max,json=deltaMax,proto3" json:"delta_max,omitempty"`
}

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

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

func (*IntRange) ProtoMessage() {}

func (x *IntRange) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 IntRange.ProtoReflect.Descriptor instead.
func (*IntRange) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{9}
}

func (x *IntRange) GetMinimum() int64 {
	if x != nil {
		return x.Minimum
	}
	return 0
}

func (x *IntRange) GetMaximum() int64 {
	if x != nil {
		return x.Maximum
	}
	return 0
}

func (x *IntRange) GetDeltaMin() int64 {
	if x != nil {
		return x.DeltaMin
	}
	return 0
}

func (x *IntRange) GetDeltaMax() int64 {
	if x != nil {
		return x.DeltaMax
	}
	return 0
}

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

	// The set of values which can be used.
	Options []int64 `protobuf:"varint,1,rep,packed,name=options,proto3" json:"options,omitempty"`
	// Set to true to randomize selection of value from options. If false, the
	// values are cycled in order, starting at index 0.
	Random bool `protobuf:"varint,2,opt,name=random,proto3" json:"random,omitempty"`
}

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

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

func (*IntList) ProtoMessage() {}

func (x *IntList) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 IntList.ProtoReflect.Descriptor instead.
func (*IntList) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{10}
}

func (x *IntList) GetOptions() []int64 {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *IntList) GetRandom() bool {
	if x != nil {
		return x.Random
	}
	return false
}

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

	// If distribution is DoubleRange, value is used as the initial value
	// inside [minimum, maximum] and hold the value as it mutates.
	// If distribution is DoubleList, value is only used to hold the value as it
	// mutates.
	// If no distribution is set, value is used as it mutates, i.e. constant
	// update.
	Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"`
	// Types that are assignable to Distribution:
	//	*DoubleValue_Range
	//	*DoubleValue_List
	Distribution isDoubleValue_Distribution `protobuf_oneof:"distribution"`
}

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

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

func (*DoubleValue) ProtoMessage() {}

func (x *DoubleValue) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 DoubleValue.ProtoReflect.Descriptor instead.
func (*DoubleValue) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{11}
}

func (x *DoubleValue) GetValue() float64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (m *DoubleValue) GetDistribution() isDoubleValue_Distribution {
	if m != nil {
		return m.Distribution
	}
	return nil
}

func (x *DoubleValue) GetRange() *DoubleRange {
	if x, ok := x.GetDistribution().(*DoubleValue_Range); ok {
		return x.Range
	}
	return nil
}

func (x *DoubleValue) GetList() *DoubleList {
	if x, ok := x.GetDistribution().(*DoubleValue_List); ok {
		return x.List
	}
	return nil
}

type isDoubleValue_Distribution interface {
	isDoubleValue_Distribution()
}

type DoubleValue_Range struct {
	Range *DoubleRange `protobuf:"bytes,2,opt,name=range,proto3,oneof"`
}

type DoubleValue_List struct {
	List *DoubleList `protobuf:"bytes,3,opt,name=list,proto3,oneof"`
}

func (*DoubleValue_Range) isDoubleValue_Distribution() {}

func (*DoubleValue_List) isDoubleValue_Distribution() {}

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

	// The range of the value allowed.
	Minimum float64 `protobuf:"fixed64,1,opt,name=minimum,proto3" json:"minimum,omitempty"`
	Maximum float64 `protobuf:"fixed64,2,opt,name=maximum,proto3" json:"maximum,omitempty"`
	// If set, the value is cumulative and the subsequent value is value + delta
	// where delta is randomly chosen between delta_min and delta_max. The range
	// minimum and maximum are still respected. If not set subsequent value is a
	// value randomly chosen between minimum and maximum.
	DeltaMin float64 `protobuf:"fixed64,3,opt,name=delta_min,json=deltaMin,proto3" json:"delta_min,omitempty"`
	DeltaMax float64 `protobuf:"fixed64,4,opt,name=delta_max,json=deltaMax,proto3" json:"delta_max,omitempty"`
}

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

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

func (*DoubleRange) ProtoMessage() {}

func (x *DoubleRange) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 DoubleRange.ProtoReflect.Descriptor instead.
func (*DoubleRange) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{12}
}

func (x *DoubleRange) GetMinimum() float64 {
	if x != nil {
		return x.Minimum
	}
	return 0
}

func (x *DoubleRange) GetMaximum() float64 {
	if x != nil {
		return x.Maximum
	}
	return 0
}

func (x *DoubleRange) GetDeltaMin() float64 {
	if x != nil {
		return x.DeltaMin
	}
	return 0
}

func (x *DoubleRange) GetDeltaMax() float64 {
	if x != nil {
		return x.DeltaMax
	}
	return 0
}

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

	// The set of values which can be used.
	Options []float64 `protobuf:"fixed64,1,rep,packed,name=options,proto3" json:"options,omitempty"`
	// Set to true to randomize selection of value from options. If false, the
	// values are cycled in order.
	Random bool `protobuf:"varint,2,opt,name=random,proto3" json:"random,omitempty"`
}

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

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

func (*DoubleList) ProtoMessage() {}

func (x *DoubleList) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 DoubleList.ProtoReflect.Descriptor instead.
func (*DoubleList) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{13}
}

func (x *DoubleList) GetOptions() []float64 {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *DoubleList) GetRandom() bool {
	if x != nil {
		return x.Random
	}
	return false
}

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

	// If distribution is StringList, value is used to hold the value as it
	// mutates.
	// If no distribution is set, value is used as it mutates, i.e. constant
	// update.
	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	// Types that are assignable to Distribution:
	//	*StringValue_List
	Distribution isStringValue_Distribution `protobuf_oneof:"distribution"`
}

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

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

func (*StringValue) ProtoMessage() {}

func (x *StringValue) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 StringValue.ProtoReflect.Descriptor instead.
func (*StringValue) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{14}
}

func (x *StringValue) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

func (m *StringValue) GetDistribution() isStringValue_Distribution {
	if m != nil {
		return m.Distribution
	}
	return nil
}

func (x *StringValue) GetList() *StringList {
	if x, ok := x.GetDistribution().(*StringValue_List); ok {
		return x.List
	}
	return nil
}

type isStringValue_Distribution interface {
	isStringValue_Distribution()
}

type StringValue_List struct {
	List *StringList `protobuf:"bytes,2,opt,name=list,proto3,oneof"`
}

func (*StringValue_List) isStringValue_Distribution() {}

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

	// The set of strings which can be used.
	Options []string `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"`
	// Set to true to randomize selection of value from options. If false, the
	// values are cycled in order, starting at index 0.
	Random bool `protobuf:"varint,2,opt,name=random,proto3" json:"random,omitempty"`
}

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

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

func (*StringList) ProtoMessage() {}

func (x *StringList) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 StringList.ProtoReflect.Descriptor instead.
func (*StringList) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{15}
}

func (x *StringList) GetOptions() []string {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *StringList) GetRandom() bool {
	if x != nil {
		return x.Random
	}
	return false
}

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

	// If distribution is StringList, value is used to hold the value as it
	// mutates.
	// If no distribution is set, value is used as it mutates, i.e. constant
	// update.
	Value []string `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"`
	// Types that are assignable to Distribution:
	//	*StringListValue_List
	Distribution isStringListValue_Distribution `protobuf_oneof:"distribution"`
}

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

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

func (*StringListValue) ProtoMessage() {}

func (x *StringListValue) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 StringListValue.ProtoReflect.Descriptor instead.
func (*StringListValue) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{16}
}

func (x *StringListValue) GetValue() []string {
	if x != nil {
		return x.Value
	}
	return nil
}

func (m *StringListValue) GetDistribution() isStringListValue_Distribution {
	if m != nil {
		return m.Distribution
	}
	return nil
}

func (x *StringListValue) GetList() *StringList {
	if x, ok := x.GetDistribution().(*StringListValue_List); ok {
		return x.List
	}
	return nil
}

type isStringListValue_Distribution interface {
	isStringListValue_Distribution()
}

type StringListValue_List struct {
	List *StringList `protobuf:"bytes,2,opt,name=list,proto3,oneof"`
}

func (*StringListValue_List) isStringListValue_Distribution() {}

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

	// If distribution is BoolList, value is only used to hold the value as it
	// mutates.
	// If no distribution is set, value is used as it mutates, i.e. constant
	// update.
	Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	// Types that are assignable to Distribution:
	//	*BoolValue_List
	Distribution isBoolValue_Distribution `protobuf_oneof:"distribution"`
}

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

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

func (*BoolValue) ProtoMessage() {}

func (x *BoolValue) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 BoolValue.ProtoReflect.Descriptor instead.
func (*BoolValue) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{17}
}

func (x *BoolValue) GetValue() bool {
	if x != nil {
		return x.Value
	}
	return false
}

func (m *BoolValue) GetDistribution() isBoolValue_Distribution {
	if m != nil {
		return m.Distribution
	}
	return nil
}

func (x *BoolValue) GetList() *BoolList {
	if x, ok := x.GetDistribution().(*BoolValue_List); ok {
		return x.List
	}
	return nil
}

type isBoolValue_Distribution interface {
	isBoolValue_Distribution()
}

type BoolValue_List struct {
	List *BoolList `protobuf:"bytes,2,opt,name=list,proto3,oneof"`
}

func (*BoolValue_List) isBoolValue_Distribution() {}

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

	// The set of values which can be used.
	Options []bool `protobuf:"varint,1,rep,packed,name=options,proto3" json:"options,omitempty"`
	// Set to true to randomize selection of value from options. If false, the
	// values are cycled in order, starting at index 0.
	Random bool `protobuf:"varint,2,opt,name=random,proto3" json:"random,omitempty"`
}

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

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

func (*BoolList) ProtoMessage() {}

func (x *BoolList) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 BoolList.ProtoReflect.Descriptor instead.
func (*BoolList) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{18}
}

func (x *BoolList) GetOptions() []bool {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *BoolList) GetRandom() bool {
	if x != nil {
		return x.Random
	}
	return false
}

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

	// If distribution is UintRange, value is used as the initial value
	// inside [minimum, maximum] and hold the value as it mutates.
	// If distribution is UintList, value is only used to hold the value as it
	// mutates.
	// If no distribution is set, value is used as it mutates, i.e. constant
	// update.
	Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	// Types that are assignable to Distribution:
	//	*UintValue_Range
	//	*UintValue_List
	Distribution isUintValue_Distribution `protobuf_oneof:"distribution"`
}

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

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

func (*UintValue) ProtoMessage() {}

func (x *UintValue) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 UintValue.ProtoReflect.Descriptor instead.
func (*UintValue) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{19}
}

func (x *UintValue) GetValue() uint64 {
	if x != nil {
		return x.Value
	}
	return 0
}

func (m *UintValue) GetDistribution() isUintValue_Distribution {
	if m != nil {
		return m.Distribution
	}
	return nil
}

func (x *UintValue) GetRange() *UintRange {
	if x, ok := x.GetDistribution().(*UintValue_Range); ok {
		return x.Range
	}
	return nil
}

func (x *UintValue) GetList() *UintList {
	if x, ok := x.GetDistribution().(*UintValue_List); ok {
		return x.List
	}
	return nil
}

type isUintValue_Distribution interface {
	isUintValue_Distribution()
}

type UintValue_Range struct {
	Range *UintRange `protobuf:"bytes,2,opt,name=range,proto3,oneof"`
}

type UintValue_List struct {
	List *UintList `protobuf:"bytes,3,opt,name=list,proto3,oneof"`
}

func (*UintValue_Range) isUintValue_Distribution() {}

func (*UintValue_List) isUintValue_Distribution() {}

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

	// The range of the value allowed.
	Minimum uint64 `protobuf:"varint,1,opt,name=minimum,proto3" json:"minimum,omitempty"`
	Maximum uint64 `protobuf:"varint,2,opt,name=maximum,proto3" json:"maximum,omitempty"`
	// If set, the value is cumulative and the subsequent value is value + delta
	// where delta is randomly chosen between delta_min and delta_max.  The range
	// minimum and maximum are still respected and values will saturate at the
	// boundaries if they are exceeded. If not set subsequent value is a value
	// randomly chosen between minimum and maximum.
	DeltaMin int64 `protobuf:"varint,3,opt,name=delta_min,json=deltaMin,proto3" json:"delta_min,omitempty"`
	DeltaMax int64 `protobuf:"varint,4,opt,name=delta_max,json=deltaMax,proto3" json:"delta_max,omitempty"`
}

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

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

func (*UintRange) ProtoMessage() {}

func (x *UintRange) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 UintRange.ProtoReflect.Descriptor instead.
func (*UintRange) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{20}
}

func (x *UintRange) GetMinimum() uint64 {
	if x != nil {
		return x.Minimum
	}
	return 0
}

func (x *UintRange) GetMaximum() uint64 {
	if x != nil {
		return x.Maximum
	}
	return 0
}

func (x *UintRange) GetDeltaMin() int64 {
	if x != nil {
		return x.DeltaMin
	}
	return 0
}

func (x *UintRange) GetDeltaMax() int64 {
	if x != nil {
		return x.DeltaMax
	}
	return 0
}

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

	// The set of values which can be used.
	Options []uint64 `protobuf:"varint,1,rep,packed,name=options,proto3" json:"options,omitempty"`
	// Set to true to randomize selection of value from options. If false, the
	// values are cycled in order, starting at index 0.
	Random bool `protobuf:"varint,2,opt,name=random,proto3" json:"random,omitempty"`
}

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

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

func (*UintList) ProtoMessage() {}

func (x *UintList) ProtoReflect() protoreflect.Message {
	mi := &file_github_com_openconfig_gnmi_testing_fake_proto_fake_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 UintList.ProtoReflect.Descriptor instead.
func (*UintList) Descriptor() ([]byte, []int) {
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP(), []int{21}
}

func (x *UintList) GetOptions() []uint64 {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *UintList) GetRandom() bool {
	if x != nil {
		return x.Random
	}
	return false
}

var File_github_com_openconfig_gnmi_testing_fake_proto_fake_proto protoreflect.FileDescriptor

var file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDesc = []byte{
	0x0a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x74, 0x65, 0x73,
	0x74, 0x69, 0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6b, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
	0x66, 0x61, 0x6b, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x67, 0x6e, 0x6d, 0x69,
	0x2e, 0x66, 0x61, 0x6b, 0x65, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x1a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x22, 0x3a, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x45,
	0x0a, 0x0b, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x1a, 0x0a,
	0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73,
	0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73,
	0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x9b, 0x05, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x04,
	0x73, 0x65, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04,
	0x73, 0x65, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65,
	0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x79,
	0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c,
	0x65, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x67, 0x6e, 0x6d,
	0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f,
	0x65, 0x6f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62,
	0x6c, 0x65, 0x45, 0x6f, 0x66, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
	0x69, 0x61, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6d,
	0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61,
	0x6c, 0x73, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12,
	0x12, 0x0a, 0x04, 0x63, 0x65, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x63,
	0x65, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65,
	0x6c, 0x61, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
	0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x06,
	0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d,
	0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61,
	0x6b, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x31, 0x0a, 0x05,
	0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6e,
	0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x47, 0x65, 0x6e,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x12,
	0x1f, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x0b,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x64, 0x64, 0x72,
	0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x72, 0x74, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x72, 0x74, 0x22,
	0x45, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a,
	0x04, 0x47, 0x52, 0x50, 0x43, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x55, 0x42, 0x42,
	0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x4e, 0x4d, 0x49,
	0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x47, 0x52, 0x50, 0x43, 0x5f, 0x47, 0x4e, 0x4d, 0x49, 0x5f,
	0x50, 0x52, 0x4f, 0x44, 0x10, 0x03, 0x42, 0x0b, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61,
	0x74, 0x6f, 0x72, 0x22, 0x47, 0x0a, 0x0e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x47, 0x65, 0x6e, 0x65,
	0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x4f, 0x0a, 0x0f,
	0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12,
	0x12, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73,
	0x65, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x0d, 0x0a,
	0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb2, 0x04, 0x0a,
	0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x32, 0x0a, 0x09, 0x74, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x16,
	0x0a, 0x06, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
	0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x6e,
	0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
	0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b,
	0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x65,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65,
	0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b,
	0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x73,
	0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x66, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x53, 0x74,
	0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63,
	0x18, 0x67, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x30,
	0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
	0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x12, 0x35, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x69,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65,
	0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f,
	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x75, 0x69, 0x6e, 0x74, 0x5f,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e,
	0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x48, 0x00, 0x52, 0x09, 0x75, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x48,
	0x0a, 0x11, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
	0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c,
	0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x22, 0x63, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c,
	0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1b, 0x0a, 0x09,
	0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52,
	0x08, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6c,
	0x74, 0x61, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65,
	0x6c, 0x74, 0x61, 0x4d, 0x61, 0x78, 0x22, 0x87, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x72, 0x61, 0x6e,
	0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e,
	0x66, 0x61, 0x6b, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52,
	0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65,
	0x2e, 0x49, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74,
	0x42, 0x0e, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
	0x22, 0x78, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d,
	0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75,
	0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
	0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x69, 0x6e, 0x12, 0x1b, 0x0a,
	0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x08, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x61, 0x78, 0x22, 0x3b, 0x0a, 0x07, 0x49, 0x6e,
	0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
	0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0x90, 0x01, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62,
	0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a,
	0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
	0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x52,
	0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a,
	0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6e,
	0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x4c, 0x69,
	0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x64, 0x69,
	0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7b, 0x0a, 0x0b, 0x44, 0x6f,
	0x75, 0x62, 0x6c, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e,
	0x69, 0x6d, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69,
	0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1b, 0x0a,
	0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01,
	0x52, 0x08, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65,
	0x6c, 0x74, 0x61, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64,
	0x65, 0x6c, 0x74, 0x61, 0x4d, 0x61, 0x78, 0x22, 0x3e, 0x0a, 0x0a, 0x44, 0x6f, 0x75, 0x62, 0x6c,
	0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
	0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0x60, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e,
	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x04,
	0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6d,
	0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x64, 0x69, 0x73,
	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x0a, 0x0a, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0x64, 0x0a, 0x0f, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x53, 0x74, 0x72,
	0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42,
	0x0e, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22,
	0x5c, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x42, 0x6f, 0x6f,
	0x6c, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x0e, 0x0a,
	0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3c, 0x0a,
	0x08, 0x42, 0x6f, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x09,
	0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x2c, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
	0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x52,
	0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x29, 0x0a,
	0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e,
	0x6d, 0x69, 0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
	0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74,
	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x09, 0x55, 0x69, 0x6e, 0x74,
	0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12,
	0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
	0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6c,
	0x74, 0x61, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65,
	0x6c, 0x74, 0x61, 0x4d, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f,
	0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x74, 0x61,
	0x4d, 0x61, 0x78, 0x22, 0x3c, 0x0a, 0x08, 0x55, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12,
	0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04,
	0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e,
	0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f,
	0x6d, 0x2a, 0x2b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54,
	0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x49, 0x54, 0x10,
	0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x32, 0x9b,
	0x01, 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12,
	0x2b, 0x0a, 0x03, 0x41, 0x64, 0x64, 0x12, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61,
	0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
	0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x06,
	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61,
	0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
	0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x06,
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69, 0x2e, 0x66, 0x61,
	0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x11, 0x2e, 0x67, 0x6e, 0x6d, 0x69,
	0x2e, 0x66, 0x61, 0x6b, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x39, 0x5a, 0x37,
	0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6d, 0x69, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x69,
	0x6e, 0x67, 0x2f, 0x66, 0x61, 0x6b, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x67, 0x6e,
	0x6d, 0x69, 0x5f, 0x66, 0x61, 0x6b, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescOnce sync.Once
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescData = file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDesc
)

func file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescGZIP() []byte {
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescOnce.Do(func() {
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescData)
	})
	return file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDescData
}

var file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
var file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_goTypes = []interface{}{
	(State)(0),                     // 0: gnmi.fake.State
	(Config_ClientType)(0),         // 1: gnmi.fake.Config.ClientType
	(*Configuration)(nil),          // 2: gnmi.fake.Configuration
	(*Credentials)(nil),            // 3: gnmi.fake.Credentials
	(*Config)(nil),                 // 4: gnmi.fake.Config
	(*FixedGenerator)(nil),         // 5: gnmi.fake.FixedGenerator
	(*RandomGenerator)(nil),        // 6: gnmi.fake.RandomGenerator
	(*DeleteValue)(nil),            // 7: gnmi.fake.DeleteValue
	(*Value)(nil),                  // 8: gnmi.fake.Value
	(*Timestamp)(nil),              // 9: gnmi.fake.Timestamp
	(*IntValue)(nil),               // 10: gnmi.fake.IntValue
	(*IntRange)(nil),               // 11: gnmi.fake.IntRange
	(*IntList)(nil),                // 12: gnmi.fake.IntList
	(*DoubleValue)(nil),            // 13: gnmi.fake.DoubleValue
	(*DoubleRange)(nil),            // 14: gnmi.fake.DoubleRange
	(*DoubleList)(nil),             // 15: gnmi.fake.DoubleList
	(*StringValue)(nil),            // 16: gnmi.fake.StringValue
	(*StringList)(nil),             // 17: gnmi.fake.StringList
	(*StringListValue)(nil),        // 18: gnmi.fake.StringListValue
	(*BoolValue)(nil),              // 19: gnmi.fake.BoolValue
	(*BoolList)(nil),               // 20: gnmi.fake.BoolList
	(*UintValue)(nil),              // 21: gnmi.fake.UintValue
	(*UintRange)(nil),              // 22: gnmi.fake.UintRange
	(*UintList)(nil),               // 23: gnmi.fake.UintList
	(*any.Any)(nil),                // 24: google.protobuf.Any
	(*gnmi.SubscribeResponse)(nil), // 25: gnmi.SubscribeResponse
}
var file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_depIdxs = []int32{
	4,  // 0: gnmi.fake.Configuration.config:type_name -> gnmi.fake.Config
	8,  // 1: gnmi.fake.Config.values:type_name -> gnmi.fake.Value
	1,  // 2: gnmi.fake.Config.client_type:type_name -> gnmi.fake.Config.ClientType
	3,  // 3: gnmi.fake.Config.credentials:type_name -> gnmi.fake.Credentials
	24, // 4: gnmi.fake.Config.custom:type_name -> google.protobuf.Any
	6,  // 5: gnmi.fake.Config.random:type_name -> gnmi.fake.RandomGenerator
	5,  // 6: gnmi.fake.Config.fixed:type_name -> gnmi.fake.FixedGenerator
	25, // 7: gnmi.fake.FixedGenerator.responses:type_name -> gnmi.SubscribeResponse
	8,  // 8: gnmi.fake.RandomGenerator.values:type_name -> gnmi.fake.Value
	9,  // 9: gnmi.fake.Value.timestamp:type_name -> gnmi.fake.Timestamp
	10, // 10: gnmi.fake.Value.int_value:type_name -> gnmi.fake.IntValue
	13, // 11: gnmi.fake.Value.double_value:type_name -> gnmi.fake.DoubleValue
	16, // 12: gnmi.fake.Value.string_value:type_name -> gnmi.fake.StringValue
	7,  // 13: gnmi.fake.Value.delete:type_name -> gnmi.fake.DeleteValue
	19, // 14: gnmi.fake.Value.bool_value:type_name -> gnmi.fake.BoolValue
	21, // 15: gnmi.fake.Value.uint_value:type_name -> gnmi.fake.UintValue
	18, // 16: gnmi.fake.Value.string_list_value:type_name -> gnmi.fake.StringListValue
	11, // 17: gnmi.fake.IntValue.range:type_name -> gnmi.fake.IntRange
	12, // 18: gnmi.fake.IntValue.list:type_name -> gnmi.fake.IntList
	14, // 19: gnmi.fake.DoubleValue.range:type_name -> gnmi.fake.DoubleRange
	15, // 20: gnmi.fake.DoubleValue.list:type_name -> gnmi.fake.DoubleList
	17, // 21: gnmi.fake.StringValue.list:type_name -> gnmi.fake.StringList
	17, // 22: gnmi.fake.StringListValue.list:type_name -> gnmi.fake.StringList
	20, // 23: gnmi.fake.BoolValue.list:type_name -> gnmi.fake.BoolList
	22, // 24: gnmi.fake.UintValue.range:type_name -> gnmi.fake.UintRange
	23, // 25: gnmi.fake.UintValue.list:type_name -> gnmi.fake.UintList
	4,  // 26: gnmi.fake.AgentManager.Add:input_type -> gnmi.fake.Config
	4,  // 27: gnmi.fake.AgentManager.Remove:input_type -> gnmi.fake.Config
	4,  // 28: gnmi.fake.AgentManager.Status:input_type -> gnmi.fake.Config
	4,  // 29: gnmi.fake.AgentManager.Add:output_type -> gnmi.fake.Config
	4,  // 30: gnmi.fake.AgentManager.Remove:output_type -> gnmi.fake.Config
	4,  // 31: gnmi.fake.AgentManager.Status:output_type -> gnmi.fake.Config
	29, // [29:32] is the sub-list for method output_type
	26, // [26:29] is the sub-list for method input_type
	26, // [26:26] is the sub-list for extension type_name
	26, // [26:26] is the sub-list for extension extendee
	0,  // [0:26] is the sub-list for field type_name
}

func init() { file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_init() }
func file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_init() {
	if File_github_com_openconfig_gnmi_testing_fake_proto_fake_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Configuration); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Credentials); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Config); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FixedGenerator); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RandomGenerator); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Value); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Timestamp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IntValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IntRange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IntList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DoubleValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DoubleRange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DoubleList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StringValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StringList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*StringListValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BoolValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BoolList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UintValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UintRange); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UintList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[2].OneofWrappers = []interface{}{
		(*Config_Custom)(nil),
		(*Config_Random)(nil),
		(*Config_Fixed)(nil),
	}
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[6].OneofWrappers = []interface{}{
		(*Value_IntValue)(nil),
		(*Value_DoubleValue)(nil),
		(*Value_StringValue)(nil),
		(*Value_Sync)(nil),
		(*Value_Delete)(nil),
		(*Value_BoolValue)(nil),
		(*Value_UintValue)(nil),
		(*Value_StringListValue)(nil),
	}
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[8].OneofWrappers = []interface{}{
		(*IntValue_Range)(nil),
		(*IntValue_List)(nil),
	}
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[11].OneofWrappers = []interface{}{
		(*DoubleValue_Range)(nil),
		(*DoubleValue_List)(nil),
	}
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[14].OneofWrappers = []interface{}{
		(*StringValue_List)(nil),
	}
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[16].OneofWrappers = []interface{}{
		(*StringListValue_List)(nil),
	}
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[17].OneofWrappers = []interface{}{
		(*BoolValue_List)(nil),
	}
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes[19].OneofWrappers = []interface{}{
		(*UintValue_Range)(nil),
		(*UintValue_List)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   22,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_goTypes,
		DependencyIndexes: file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_depIdxs,
		EnumInfos:         file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_enumTypes,
		MessageInfos:      file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_msgTypes,
	}.Build()
	File_github_com_openconfig_gnmi_testing_fake_proto_fake_proto = out.File
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_rawDesc = nil
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_goTypes = nil
	file_github_com_openconfig_gnmi_testing_fake_proto_fake_proto_depIdxs = nil
}
