// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: policy/v1beta1/type.proto

package v1beta1

import proto "github.com/gogo/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf1 "github.com/gogo/protobuf/types"
import google_protobuf2 "github.com/gogo/protobuf/types"

import bytes "bytes"

import strings "strings"
import reflect "reflect"

import binary "encoding/binary"

import io "io"

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

// An instance field of type Value denotes that the expression for the field is of dynamic type and can evalaute to any
// [ValueType][istio.policy.v1beta1.ValueType] enum values. For example, when
// authoring an instance configuration for a template that has a field `data` of type `istio.policy.v1beta1.Value`,
// both of the following expressions are valid `data: source.ip | ip("0.0.0.0")`, `data: request.id | ""`;
// the resulting type is either ValueType.IP_ADDRESS or ValueType.STRING for the two cases respectively.
//
// Objects of type Value are also passed to the adapters during request-time. There is a 1:1 mapping between
// oneof fields in `Value` and enum values inside `ValueType`. Depending on the expression's evaluated `ValueType`,
// the equivalent oneof field in `Value` is populated by Mixer and passed to the adapters.
type Value struct {
	// Types that are valid to be assigned to Value:
	//	*Value_StringValue
	//	*Value_Int64Value
	//	*Value_DoubleValue
	//	*Value_BoolValue
	//	*Value_IpAddressValue
	//	*Value_TimestampValue
	//	*Value_DurationValue
	//	*Value_EmailAddressValue
	//	*Value_DnsNameValue
	//	*Value_UriValue
	Value isValue_Value `protobuf_oneof:"value"`
}

func (m *Value) Reset()                    { *m = Value{} }
func (*Value) ProtoMessage()               {}
func (*Value) Descriptor() ([]byte, []int) { return fileDescriptorType, []int{0} }

type isValue_Value interface {
	isValue_Value()
	Equal(interface{}) bool
	MarshalTo([]byte) (int, error)
	Size() int
}

type Value_StringValue struct {
	StringValue string `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"`
}
type Value_Int64Value struct {
	Int64Value int64 `protobuf:"varint,2,opt,name=int64_value,json=int64Value,proto3,oneof"`
}
type Value_DoubleValue struct {
	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"`
}
type Value_BoolValue struct {
	BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"`
}
type Value_IpAddressValue struct {
	IpAddressValue *IPAddress `protobuf:"bytes,5,opt,name=ip_address_value,json=ipAddressValue,oneof"`
}
type Value_TimestampValue struct {
	TimestampValue *TimeStamp `protobuf:"bytes,6,opt,name=timestamp_value,json=timestampValue,oneof"`
}
type Value_DurationValue struct {
	DurationValue *Duration `protobuf:"bytes,7,opt,name=duration_value,json=durationValue,oneof"`
}
type Value_EmailAddressValue struct {
	EmailAddressValue *EmailAddress `protobuf:"bytes,8,opt,name=email_address_value,json=emailAddressValue,oneof"`
}
type Value_DnsNameValue struct {
	DnsNameValue *DNSName `protobuf:"bytes,9,opt,name=dns_name_value,json=dnsNameValue,oneof"`
}
type Value_UriValue struct {
	UriValue *Uri `protobuf:"bytes,10,opt,name=uri_value,json=uriValue,oneof"`
}

func (*Value_StringValue) isValue_Value()       {}
func (*Value_Int64Value) isValue_Value()        {}
func (*Value_DoubleValue) isValue_Value()       {}
func (*Value_BoolValue) isValue_Value()         {}
func (*Value_IpAddressValue) isValue_Value()    {}
func (*Value_TimestampValue) isValue_Value()    {}
func (*Value_DurationValue) isValue_Value()     {}
func (*Value_EmailAddressValue) isValue_Value() {}
func (*Value_DnsNameValue) isValue_Value()      {}
func (*Value_UriValue) isValue_Value()          {}

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

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

func (m *Value) GetInt64Value() int64 {
	if x, ok := m.GetValue().(*Value_Int64Value); ok {
		return x.Int64Value
	}
	return 0
}

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

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

func (m *Value) GetIpAddressValue() *IPAddress {
	if x, ok := m.GetValue().(*Value_IpAddressValue); ok {
		return x.IpAddressValue
	}
	return nil
}

func (m *Value) GetTimestampValue() *TimeStamp {
	if x, ok := m.GetValue().(*Value_TimestampValue); ok {
		return x.TimestampValue
	}
	return nil
}

func (m *Value) GetDurationValue() *Duration {
	if x, ok := m.GetValue().(*Value_DurationValue); ok {
		return x.DurationValue
	}
	return nil
}

func (m *Value) GetEmailAddressValue() *EmailAddress {
	if x, ok := m.GetValue().(*Value_EmailAddressValue); ok {
		return x.EmailAddressValue
	}
	return nil
}

func (m *Value) GetDnsNameValue() *DNSName {
	if x, ok := m.GetValue().(*Value_DnsNameValue); ok {
		return x.DnsNameValue
	}
	return nil
}

func (m *Value) GetUriValue() *Uri {
	if x, ok := m.GetValue().(*Value_UriValue); ok {
		return x.UriValue
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*Value) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _Value_OneofMarshaler, _Value_OneofUnmarshaler, _Value_OneofSizer, []interface{}{
		(*Value_StringValue)(nil),
		(*Value_Int64Value)(nil),
		(*Value_DoubleValue)(nil),
		(*Value_BoolValue)(nil),
		(*Value_IpAddressValue)(nil),
		(*Value_TimestampValue)(nil),
		(*Value_DurationValue)(nil),
		(*Value_EmailAddressValue)(nil),
		(*Value_DnsNameValue)(nil),
		(*Value_UriValue)(nil),
	}
}

func _Value_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*Value)
	// value
	switch x := m.Value.(type) {
	case *Value_StringValue:
		_ = b.EncodeVarint(1<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.StringValue)
	case *Value_Int64Value:
		_ = b.EncodeVarint(2<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Int64Value))
	case *Value_DoubleValue:
		_ = b.EncodeVarint(3<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(math.Float64bits(x.DoubleValue))
	case *Value_BoolValue:
		t := uint64(0)
		if x.BoolValue {
			t = 1
		}
		_ = b.EncodeVarint(4<<3 | proto.WireVarint)
		_ = b.EncodeVarint(t)
	case *Value_IpAddressValue:
		_ = b.EncodeVarint(5<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.IpAddressValue); err != nil {
			return err
		}
	case *Value_TimestampValue:
		_ = b.EncodeVarint(6<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.TimestampValue); err != nil {
			return err
		}
	case *Value_DurationValue:
		_ = b.EncodeVarint(7<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.DurationValue); err != nil {
			return err
		}
	case *Value_EmailAddressValue:
		_ = b.EncodeVarint(8<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.EmailAddressValue); err != nil {
			return err
		}
	case *Value_DnsNameValue:
		_ = b.EncodeVarint(9<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.DnsNameValue); err != nil {
			return err
		}
	case *Value_UriValue:
		_ = b.EncodeVarint(10<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.UriValue); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("Value.Value has unexpected type %T", x)
	}
	return nil
}

func _Value_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*Value)
	switch tag {
	case 1: // value.string_value
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Value = &Value_StringValue{x}
		return true, err
	case 2: // value.int64_value
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Value = &Value_Int64Value{int64(x)}
		return true, err
	case 3: // value.double_value
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.Value = &Value_DoubleValue{math.Float64frombits(x)}
		return true, err
	case 4: // value.bool_value
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Value = &Value_BoolValue{x != 0}
		return true, err
	case 5: // value.ip_address_value
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(IPAddress)
		err := b.DecodeMessage(msg)
		m.Value = &Value_IpAddressValue{msg}
		return true, err
	case 6: // value.timestamp_value
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TimeStamp)
		err := b.DecodeMessage(msg)
		m.Value = &Value_TimestampValue{msg}
		return true, err
	case 7: // value.duration_value
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(Duration)
		err := b.DecodeMessage(msg)
		m.Value = &Value_DurationValue{msg}
		return true, err
	case 8: // value.email_address_value
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(EmailAddress)
		err := b.DecodeMessage(msg)
		m.Value = &Value_EmailAddressValue{msg}
		return true, err
	case 9: // value.dns_name_value
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(DNSName)
		err := b.DecodeMessage(msg)
		m.Value = &Value_DnsNameValue{msg}
		return true, err
	case 10: // value.uri_value
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(Uri)
		err := b.DecodeMessage(msg)
		m.Value = &Value_UriValue{msg}
		return true, err
	default:
		return false, nil
	}
}

func _Value_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*Value)
	// value
	switch x := m.Value.(type) {
	case *Value_StringValue:
		n += proto.SizeVarint(1<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.StringValue)))
		n += len(x.StringValue)
	case *Value_Int64Value:
		n += proto.SizeVarint(2<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Int64Value))
	case *Value_DoubleValue:
		n += proto.SizeVarint(3<<3 | proto.WireFixed64)
		n += 8
	case *Value_BoolValue:
		n += proto.SizeVarint(4<<3 | proto.WireVarint)
		n += 1
	case *Value_IpAddressValue:
		s := proto.Size(x.IpAddressValue)
		n += proto.SizeVarint(5<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Value_TimestampValue:
		s := proto.Size(x.TimestampValue)
		n += proto.SizeVarint(6<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Value_DurationValue:
		s := proto.Size(x.DurationValue)
		n += proto.SizeVarint(7<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Value_EmailAddressValue:
		s := proto.Size(x.EmailAddressValue)
		n += proto.SizeVarint(8<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Value_DnsNameValue:
		s := proto.Size(x.DnsNameValue)
		n += proto.SizeVarint(9<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *Value_UriValue:
		s := proto.Size(x.UriValue)
		n += proto.SizeVarint(10<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

// An instance field of type IPAddress denotes that the expression for the field must evalaute to
// [ValueType.IP_ADDRESS][istio.policy.v1beta1.ValueType.IP_ADDRESS]
//
// Objects of type IPAddress are also passed to the adapters during request-time for the instance fields of
// type IPAddress
type IPAddress struct {
	// IPAddress encoded as bytes.
	Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (m *IPAddress) Reset()                    { *m = IPAddress{} }
func (*IPAddress) ProtoMessage()               {}
func (*IPAddress) Descriptor() ([]byte, []int) { return fileDescriptorType, []int{1} }

func (m *IPAddress) GetValue() []byte {
	if m != nil {
		return m.Value
	}
	return nil
}

// An instance field of type Duration denotes that the expression for the field must evalaute to
// [ValueType.DURATION][istio.policy.v1beta1.ValueType.DURATION]
//
// Objects of type Duration are also passed to the adapters during request-time for the instance fields of
// type Duration
type Duration struct {
	// Duration encoded as google.protobuf.Duration.
	Value *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"`
}

func (m *Duration) Reset()                    { *m = Duration{} }
func (*Duration) ProtoMessage()               {}
func (*Duration) Descriptor() ([]byte, []int) { return fileDescriptorType, []int{2} }

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

// An instance field of type TimeStamp denotes that the expression for the field must evalaute to
// [ValueType.TIMESTAMP][istio.policy.v1beta1.ValueType.TIMESTAMP]
//
// Objects of type TimeStamp are also passed to the adapters during request-time for the instance fields of
// type TimeStamp
type TimeStamp struct {
	// TimeStamp encoded as google.protobuf.Timestamp.
	Value *google_protobuf2.Timestamp `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"`
}

func (m *TimeStamp) Reset()                    { *m = TimeStamp{} }
func (*TimeStamp) ProtoMessage()               {}
func (*TimeStamp) Descriptor() ([]byte, []int) { return fileDescriptorType, []int{3} }

func (m *TimeStamp) GetValue() *google_protobuf2.Timestamp {
	if m != nil {
		return m.Value
	}
	return nil
}

// An instance field of type DNSName denotes that the expression for the field must evalaute to
// [ValueType.DNS_NAME][istio.policy.v1beta1.ValueType.DNS_NAME]
//
// Objects of type DNSName are also passed to the adapters during request-time for the instance fields of
// type DNSName
type DNSName struct {
	// DNSName encoded as string.
	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (m *DNSName) Reset()                    { *m = DNSName{} }
func (*DNSName) ProtoMessage()               {}
func (*DNSName) Descriptor() ([]byte, []int) { return fileDescriptorType, []int{4} }

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

// DO NOT USE !! Under Development
// An instance field of type EmailAddress denotes that the expression for the field must evalaute to
// [ValueType.EMAIL_ADDRESS][istio.policy.v1beta1.ValueType.EMAIL_ADDRESS]
//
// Objects of type EmailAddress are also passed to the adapters during request-time for the instance fields of
// type EmailAddress
type EmailAddress struct {
	// EmailAddress encoded as string.
	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (m *EmailAddress) Reset()                    { *m = EmailAddress{} }
func (*EmailAddress) ProtoMessage()               {}
func (*EmailAddress) Descriptor() ([]byte, []int) { return fileDescriptorType, []int{5} }

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

// DO NOT USE !! Under Development
// An instance field of type Uri denotes that the expression for the field must evalaute to
// [ValueType.URI][istio.policy.v1beta1.ValueType.URI]
//
// Objects of type Uri are also passed to the adapters during request-time for the instance fields of
// type Uri
type Uri struct {
	// Uri encoded as string.
	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (m *Uri) Reset()                    { *m = Uri{} }
func (*Uri) ProtoMessage()               {}
func (*Uri) Descriptor() ([]byte, []int) { return fileDescriptorType, []int{6} }

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

func init() {
	proto.RegisterType((*Value)(nil), "istio.policy.v1beta1.Value")
	proto.RegisterType((*IPAddress)(nil), "istio.policy.v1beta1.IPAddress")
	proto.RegisterType((*Duration)(nil), "istio.policy.v1beta1.Duration")
	proto.RegisterType((*TimeStamp)(nil), "istio.policy.v1beta1.TimeStamp")
	proto.RegisterType((*DNSName)(nil), "istio.policy.v1beta1.DNSName")
	proto.RegisterType((*EmailAddress)(nil), "istio.policy.v1beta1.EmailAddress")
	proto.RegisterType((*Uri)(nil), "istio.policy.v1beta1.Uri")
}
func (this *Value) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value)
	if !ok {
		that2, ok := that.(Value)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.Value == nil {
		if this.Value != nil {
			return false
		}
	} else if this.Value == nil {
		return false
	} else if !this.Value.Equal(that1.Value) {
		return false
	}
	return true
}
func (this *Value_StringValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_StringValue)
	if !ok {
		that2, ok := that.(Value_StringValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.StringValue != that1.StringValue {
		return false
	}
	return true
}
func (this *Value_Int64Value) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_Int64Value)
	if !ok {
		that2, ok := that.(Value_Int64Value)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Int64Value != that1.Int64Value {
		return false
	}
	return true
}
func (this *Value_DoubleValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_DoubleValue)
	if !ok {
		that2, ok := that.(Value_DoubleValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.DoubleValue != that1.DoubleValue {
		return false
	}
	return true
}
func (this *Value_BoolValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_BoolValue)
	if !ok {
		that2, ok := that.(Value_BoolValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.BoolValue != that1.BoolValue {
		return false
	}
	return true
}
func (this *Value_IpAddressValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_IpAddressValue)
	if !ok {
		that2, ok := that.(Value_IpAddressValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.IpAddressValue.Equal(that1.IpAddressValue) {
		return false
	}
	return true
}
func (this *Value_TimestampValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_TimestampValue)
	if !ok {
		that2, ok := that.(Value_TimestampValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.TimestampValue.Equal(that1.TimestampValue) {
		return false
	}
	return true
}
func (this *Value_DurationValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_DurationValue)
	if !ok {
		that2, ok := that.(Value_DurationValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.DurationValue.Equal(that1.DurationValue) {
		return false
	}
	return true
}
func (this *Value_EmailAddressValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_EmailAddressValue)
	if !ok {
		that2, ok := that.(Value_EmailAddressValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.EmailAddressValue.Equal(that1.EmailAddressValue) {
		return false
	}
	return true
}
func (this *Value_DnsNameValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_DnsNameValue)
	if !ok {
		that2, ok := that.(Value_DnsNameValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.DnsNameValue.Equal(that1.DnsNameValue) {
		return false
	}
	return true
}
func (this *Value_UriValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_UriValue)
	if !ok {
		that2, ok := that.(Value_UriValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.UriValue.Equal(that1.UriValue) {
		return false
	}
	return true
}
func (this *IPAddress) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*IPAddress)
	if !ok {
		that2, ok := that.(IPAddress)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !bytes.Equal(this.Value, that1.Value) {
		return false
	}
	return true
}
func (this *Duration) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Duration)
	if !ok {
		that2, ok := that.(Duration)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Value.Equal(that1.Value) {
		return false
	}
	return true
}
func (this *TimeStamp) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*TimeStamp)
	if !ok {
		that2, ok := that.(TimeStamp)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Value.Equal(that1.Value) {
		return false
	}
	return true
}
func (this *DNSName) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*DNSName)
	if !ok {
		that2, ok := that.(DNSName)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Value != that1.Value {
		return false
	}
	return true
}
func (this *EmailAddress) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*EmailAddress)
	if !ok {
		that2, ok := that.(EmailAddress)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Value != that1.Value {
		return false
	}
	return true
}
func (this *Uri) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Uri)
	if !ok {
		that2, ok := that.(Uri)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Value != that1.Value {
		return false
	}
	return true
}
func (this *Value) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 14)
	s = append(s, "&v1beta1.Value{")
	if this.Value != nil {
		s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Value_StringValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_StringValue{` +
		`StringValue:` + fmt.Sprintf("%#v", this.StringValue) + `}`}, ", ")
	return s
}
func (this *Value_Int64Value) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_Int64Value{` +
		`Int64Value:` + fmt.Sprintf("%#v", this.Int64Value) + `}`}, ", ")
	return s
}
func (this *Value_DoubleValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_DoubleValue{` +
		`DoubleValue:` + fmt.Sprintf("%#v", this.DoubleValue) + `}`}, ", ")
	return s
}
func (this *Value_BoolValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_BoolValue{` +
		`BoolValue:` + fmt.Sprintf("%#v", this.BoolValue) + `}`}, ", ")
	return s
}
func (this *Value_IpAddressValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_IpAddressValue{` +
		`IpAddressValue:` + fmt.Sprintf("%#v", this.IpAddressValue) + `}`}, ", ")
	return s
}
func (this *Value_TimestampValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_TimestampValue{` +
		`TimestampValue:` + fmt.Sprintf("%#v", this.TimestampValue) + `}`}, ", ")
	return s
}
func (this *Value_DurationValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_DurationValue{` +
		`DurationValue:` + fmt.Sprintf("%#v", this.DurationValue) + `}`}, ", ")
	return s
}
func (this *Value_EmailAddressValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_EmailAddressValue{` +
		`EmailAddressValue:` + fmt.Sprintf("%#v", this.EmailAddressValue) + `}`}, ", ")
	return s
}
func (this *Value_DnsNameValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_DnsNameValue{` +
		`DnsNameValue:` + fmt.Sprintf("%#v", this.DnsNameValue) + `}`}, ", ")
	return s
}
func (this *Value_UriValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_UriValue{` +
		`UriValue:` + fmt.Sprintf("%#v", this.UriValue) + `}`}, ", ")
	return s
}
func (this *IPAddress) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.IPAddress{")
	s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Duration) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.Duration{")
	if this.Value != nil {
		s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *TimeStamp) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.TimeStamp{")
	if this.Value != nil {
		s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *DNSName) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.DNSName{")
	s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *EmailAddress) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.EmailAddress{")
	s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Uri) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.Uri{")
	s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	s = append(s, "}")
	return strings.Join(s, "")
}
func valueToGoStringType(v interface{}, typ string) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv)
}
func (m *Value) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Value) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.Value != nil {
		nn1, err := m.Value.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += nn1
	}
	return i, nil
}

func (m *Value_StringValue) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	dAtA[i] = 0xa
	i++
	i = encodeVarintType(dAtA, i, uint64(len(m.StringValue)))
	i += copy(dAtA[i:], m.StringValue)
	return i, nil
}
func (m *Value_Int64Value) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	dAtA[i] = 0x10
	i++
	i = encodeVarintType(dAtA, i, uint64(m.Int64Value))
	return i, nil
}
func (m *Value_DoubleValue) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	dAtA[i] = 0x19
	i++
	binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.DoubleValue))))
	i += 8
	return i, nil
}
func (m *Value_BoolValue) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	dAtA[i] = 0x20
	i++
	if m.BoolValue {
		dAtA[i] = 1
	} else {
		dAtA[i] = 0
	}
	i++
	return i, nil
}
func (m *Value_IpAddressValue) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.IpAddressValue != nil {
		dAtA[i] = 0x2a
		i++
		i = encodeVarintType(dAtA, i, uint64(m.IpAddressValue.Size()))
		n2, err := m.IpAddressValue.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n2
	}
	return i, nil
}
func (m *Value_TimestampValue) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.TimestampValue != nil {
		dAtA[i] = 0x32
		i++
		i = encodeVarintType(dAtA, i, uint64(m.TimestampValue.Size()))
		n3, err := m.TimestampValue.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n3
	}
	return i, nil
}
func (m *Value_DurationValue) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.DurationValue != nil {
		dAtA[i] = 0x3a
		i++
		i = encodeVarintType(dAtA, i, uint64(m.DurationValue.Size()))
		n4, err := m.DurationValue.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n4
	}
	return i, nil
}
func (m *Value_EmailAddressValue) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.EmailAddressValue != nil {
		dAtA[i] = 0x42
		i++
		i = encodeVarintType(dAtA, i, uint64(m.EmailAddressValue.Size()))
		n5, err := m.EmailAddressValue.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n5
	}
	return i, nil
}
func (m *Value_DnsNameValue) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.DnsNameValue != nil {
		dAtA[i] = 0x4a
		i++
		i = encodeVarintType(dAtA, i, uint64(m.DnsNameValue.Size()))
		n6, err := m.DnsNameValue.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n6
	}
	return i, nil
}
func (m *Value_UriValue) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.UriValue != nil {
		dAtA[i] = 0x52
		i++
		i = encodeVarintType(dAtA, i, uint64(m.UriValue.Size()))
		n7, err := m.UriValue.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n7
	}
	return i, nil
}
func (m *IPAddress) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *IPAddress) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.Value) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintType(dAtA, i, uint64(len(m.Value)))
		i += copy(dAtA[i:], m.Value)
	}
	return i, nil
}

func (m *Duration) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Duration) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.Value != nil {
		dAtA[i] = 0xa
		i++
		i = encodeVarintType(dAtA, i, uint64(m.Value.Size()))
		n8, err := m.Value.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n8
	}
	return i, nil
}

func (m *TimeStamp) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *TimeStamp) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.Value != nil {
		dAtA[i] = 0xa
		i++
		i = encodeVarintType(dAtA, i, uint64(m.Value.Size()))
		n9, err := m.Value.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n9
	}
	return i, nil
}

func (m *DNSName) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *DNSName) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.Value) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintType(dAtA, i, uint64(len(m.Value)))
		i += copy(dAtA[i:], m.Value)
	}
	return i, nil
}

func (m *EmailAddress) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *EmailAddress) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.Value) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintType(dAtA, i, uint64(len(m.Value)))
		i += copy(dAtA[i:], m.Value)
	}
	return i, nil
}

func (m *Uri) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalTo(dAtA)
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Uri) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.Value) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintType(dAtA, i, uint64(len(m.Value)))
		i += copy(dAtA[i:], m.Value)
	}
	return i, nil
}

func encodeVarintType(dAtA []byte, offset int, v uint64) int {
	for v >= 1<<7 {
		dAtA[offset] = uint8(v&0x7f | 0x80)
		v >>= 7
		offset++
	}
	dAtA[offset] = uint8(v)
	return offset + 1
}
func (m *Value) Size() (n int) {
	var l int
	_ = l
	if m.Value != nil {
		n += m.Value.Size()
	}
	return n
}

func (m *Value_StringValue) Size() (n int) {
	var l int
	_ = l
	l = len(m.StringValue)
	n += 1 + l + sovType(uint64(l))
	return n
}
func (m *Value_Int64Value) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovType(uint64(m.Int64Value))
	return n
}
func (m *Value_DoubleValue) Size() (n int) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *Value_BoolValue) Size() (n int) {
	var l int
	_ = l
	n += 2
	return n
}
func (m *Value_IpAddressValue) Size() (n int) {
	var l int
	_ = l
	if m.IpAddressValue != nil {
		l = m.IpAddressValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_TimestampValue) Size() (n int) {
	var l int
	_ = l
	if m.TimestampValue != nil {
		l = m.TimestampValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_DurationValue) Size() (n int) {
	var l int
	_ = l
	if m.DurationValue != nil {
		l = m.DurationValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_EmailAddressValue) Size() (n int) {
	var l int
	_ = l
	if m.EmailAddressValue != nil {
		l = m.EmailAddressValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_DnsNameValue) Size() (n int) {
	var l int
	_ = l
	if m.DnsNameValue != nil {
		l = m.DnsNameValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_UriValue) Size() (n int) {
	var l int
	_ = l
	if m.UriValue != nil {
		l = m.UriValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *IPAddress) Size() (n int) {
	var l int
	_ = l
	l = len(m.Value)
	if l > 0 {
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func (m *Duration) Size() (n int) {
	var l int
	_ = l
	if m.Value != nil {
		l = m.Value.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func (m *TimeStamp) Size() (n int) {
	var l int
	_ = l
	if m.Value != nil {
		l = m.Value.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func (m *DNSName) Size() (n int) {
	var l int
	_ = l
	l = len(m.Value)
	if l > 0 {
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func (m *EmailAddress) Size() (n int) {
	var l int
	_ = l
	l = len(m.Value)
	if l > 0 {
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func (m *Uri) Size() (n int) {
	var l int
	_ = l
	l = len(m.Value)
	if l > 0 {
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func sovType(x uint64) (n int) {
	for {
		n++
		x >>= 7
		if x == 0 {
			break
		}
	}
	return n
}
func sozType(x uint64) (n int) {
	return sovType(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *Value) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_StringValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_StringValue{`,
		`StringValue:` + fmt.Sprintf("%v", this.StringValue) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_Int64Value) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_Int64Value{`,
		`Int64Value:` + fmt.Sprintf("%v", this.Int64Value) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_DoubleValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_DoubleValue{`,
		`DoubleValue:` + fmt.Sprintf("%v", this.DoubleValue) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_BoolValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_BoolValue{`,
		`BoolValue:` + fmt.Sprintf("%v", this.BoolValue) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_IpAddressValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_IpAddressValue{`,
		`IpAddressValue:` + strings.Replace(fmt.Sprintf("%v", this.IpAddressValue), "IPAddress", "IPAddress", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_TimestampValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_TimestampValue{`,
		`TimestampValue:` + strings.Replace(fmt.Sprintf("%v", this.TimestampValue), "TimeStamp", "TimeStamp", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_DurationValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_DurationValue{`,
		`DurationValue:` + strings.Replace(fmt.Sprintf("%v", this.DurationValue), "Duration", "Duration", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_EmailAddressValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_EmailAddressValue{`,
		`EmailAddressValue:` + strings.Replace(fmt.Sprintf("%v", this.EmailAddressValue), "EmailAddress", "EmailAddress", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_DnsNameValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_DnsNameValue{`,
		`DnsNameValue:` + strings.Replace(fmt.Sprintf("%v", this.DnsNameValue), "DNSName", "DNSName", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_UriValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_UriValue{`,
		`UriValue:` + strings.Replace(fmt.Sprintf("%v", this.UriValue), "Uri", "Uri", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *IPAddress) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&IPAddress{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Duration) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Duration{`,
		`Value:` + strings.Replace(fmt.Sprintf("%v", this.Value), "Duration", "google_protobuf1.Duration", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TimeStamp) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TimeStamp{`,
		`Value:` + strings.Replace(fmt.Sprintf("%v", this.Value), "Timestamp", "google_protobuf2.Timestamp", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *DNSName) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&DNSName{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`}`,
	}, "")
	return s
}
func (this *EmailAddress) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&EmailAddress{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Uri) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Uri{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`}`,
	}, "")
	return s
}
func valueToStringType(v interface{}) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("*%v", pv)
}
func (m *Value) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Value: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Value: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field StringValue", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Value = &Value_StringValue{string(dAtA[iNdEx:postIndex])}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Int64Value", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Value = &Value_Int64Value{v}
		case 3:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field DoubleValue", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.Value = &Value_DoubleValue{float64(math.Float64frombits(v))}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field BoolValue", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Value = &Value_BoolValue{b}
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field IpAddressValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &IPAddress{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_IpAddressValue{v}
			iNdEx = postIndex
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field TimestampValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &TimeStamp{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_TimestampValue{v}
			iNdEx = postIndex
		case 7:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field DurationValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &Duration{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_DurationValue{v}
			iNdEx = postIndex
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field EmailAddressValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &EmailAddress{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_EmailAddressValue{v}
			iNdEx = postIndex
		case 9:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field DnsNameValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &DNSName{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_DnsNameValue{v}
			iNdEx = postIndex
		case 10:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field UriValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &Uri{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_UriValue{v}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *IPAddress) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: IPAddress: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: IPAddress: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
			if m.Value == nil {
				m.Value = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Duration) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Duration: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Duration: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Value == nil {
				m.Value = &google_protobuf1.Duration{}
			}
			if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *TimeStamp) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: TimeStamp: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: TimeStamp: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Value == nil {
				m.Value = &google_protobuf2.Timestamp{}
			}
			if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DNSName) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DNSName: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DNSName: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Value = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *EmailAddress) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: EmailAddress: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: EmailAddress: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Value = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Uri) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Uri: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Uri: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Value = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipType(dAtA []byte) (n int, err error) {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowType
			}
			if iNdEx >= l {
				return 0, io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		wireType := int(wire & 0x7)
		switch wireType {
		case 0:
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowType
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if dAtA[iNdEx-1] < 0x80 {
					break
				}
			}
			return iNdEx, nil
		case 1:
			iNdEx += 8
			return iNdEx, nil
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowType
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			iNdEx += length
			if length < 0 {
				return 0, ErrInvalidLengthType
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowType
					}
					if iNdEx >= l {
						return 0, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					innerWire |= (uint64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				innerWireType := int(innerWire & 0x7)
				if innerWireType == 4 {
					break
				}
				next, err := skipType(dAtA[start:])
				if err != nil {
					return 0, err
				}
				iNdEx = start + next
			}
			return iNdEx, nil
		case 4:
			return iNdEx, nil
		case 5:
			iNdEx += 4
			return iNdEx, nil
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
	}
	panic("unreachable")
}

var (
	ErrInvalidLengthType = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowType   = fmt.Errorf("proto: integer overflow")
)

func init() { proto.RegisterFile("policy/v1beta1/type.proto", fileDescriptorType) }

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